bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

如何在PHP項目中對文件進行讀取-創(chuàng)新互聯(lián)

如何在PHP項目中對文件進行讀取?相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

創(chuàng)新互聯(lián)長期為上千客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為平川企業(yè)提供專業(yè)的成都網(wǎng)站設(shè)計、成都網(wǎng)站制作,平川網(wǎng)站改版等技術(shù)服務(wù)。擁有十余年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。

PHP文件讀取操作相對于文件寫入操作涉及更多的PHP文件操作函數(shù),在代碼實例中會詳細介紹這些函數(shù)。

讀取文本文件中存儲數(shù)據(jù)的方式主要涉及的三個步驟及部分文件操作函數(shù)如下:

1、打開文件(文件操作函數(shù):fopen)
2、文件數(shù)據(jù)讀取(文件操作函數(shù):fgets、file、readfile、feof等)
3、關(guān)閉文件(文件操作函數(shù):fclose)

下面仍然以PHP文件讀寫操作代碼實例講解文件讀取方法的具體應(yīng)用,在實例中,通過調(diào)用不同的PHP文件讀取操作函數(shù)讀取文本文件中的數(shù)據(jù),你可以加深PHP文件讀取操作函數(shù)的理解,以便在PHP網(wǎng)站開發(fā)中合理應(yīng)用。文本文件中寫入的數(shù)據(jù)來自于PHP文件讀寫操作之文件寫入教程,fopen函數(shù)中關(guān)于文件讀寫模式也可參考此文。

PHP文件讀取操作代碼實例

<?
$readFun = "fread";
switch ($readFun)
{
case "fgetss":
@$fp = fopen("leapsoulcn.txt","r") or die("system error");
$allowable_tags = "<h2>";
while (!feof($fp)) {
$output = fgetss($fp,100,$allowable_tags);
echo $output;
}
fclose($fp);
break;
case "fgetcsv":
@$fp = fopen("leapsoulcn.txt","r") or die("system error");
while (!feof($fp)) {
$output = fgetcsv($fp,100,"\t");
print_r($output);
}
fclose($fp);
break;
case "readfile":
echo readfile("leapsoulcn.txt");
break;
case "fpassthru":
@$fp = fopen("leapsoulcn.txt","r") or die("system error");
if(!fpassthru($fp))
exit();
fclose($fp);
break;
case "file":
$output = file("leapsoulcn.txt");
print_r($output);
break;
case "fgetc":
@$fp = fopen("leapsoulcn.txt","r") or die("system error");
while (!feof($fp)) {
$str = fgetc($fp);
echo ($str == "\n"?"<br/>":$str);
}
fclose($fp);
break;
case "fread":
@$fp = fopen("leapsoulcn.txt","r") or die("system error");
echo fread($fp,300);
fclose($fp);
break;
default:
@$fp = fopen("leapsoulcn.txt","r") or die("system error");
while (!feof($fp)) {
$output = fgets($fp,100);
echo $output;
}
fclose($fp);
break;
}
?>

注釋:在上述實例中你可以通過對$readFun賦值來實現(xiàn)不同的PHP文件讀取方法的調(diào)用,涉及的PHP文件讀取操作函數(shù)有fgets、fgetss、fgetcsv、readfile、fpassthru、file、fgetc等函數(shù)。

PHP文件讀取操作函數(shù)fgets、fgetss、fgetcsv之間的區(qū)別

在代碼實例中,默認PHP文件讀取操作函數(shù)為fgets,fgetss與fgetcsv函數(shù)的功能與fgets一樣,都是一次讀取文件中的一行,直到文件末尾。此處我設(shè)定讀取文本文件中的數(shù)據(jù)長度為100,即較大讀取長度為99(100-1),這樣,當遇到換行符\n或文件結(jié)束符EOF或從文件中讀取完99個字節(jié)時就停止讀取數(shù)據(jù)。fgets函數(shù)返回文件讀取的數(shù)據(jù),字符串型。

fgetss函數(shù)是fgets函數(shù)的一個變體,它能夠剝離PHP和HTML標記,通過傳遞第三參數(shù)來過濾不必要的數(shù)據(jù),可以提高網(wǎng)站安全性,比如留言本中可以過濾用戶的輸入數(shù)據(jù),fgetss函數(shù)原型如下:

string fgetss(resource fp,int length, string[optional] allowable_tags)

allowable_tags參數(shù)是可選項,實例中我事先在leapsoulcn.txt文件中寫入了包含html、body、h2標記的一行文字,然后在代碼中我設(shè)定只允許h2標記可以出現(xiàn)。


fgetcsv函數(shù)是fgets的另一個變體,區(qū)別在與,當你的文本文件中寫入的數(shù)據(jù)使用了定界符,可以使用fgetcsv將一行分解成多行,返回的結(jié)果存儲在數(shù)組中,函數(shù)原型如下:


array fgetcsv(resource fp,int length, string[optional] delimiter,string[optional] enclosure)

delimiter是可選項,由于在之前寫入文件的數(shù)據(jù)中我是用了\t,所以在實例中文件讀取函數(shù)fgetcsv中的定界符我使用了\t,然后通過print_r打印出fgetcsv返回的數(shù)組結(jié)構(gòu)。


三個PHP文件讀取操作函數(shù)fgets、fgetss、fgetcsv共同之處在于事先都需要使用fopen函數(shù)打開讀取的文件,同時通過feof函數(shù)判斷是否文件指針到達文件末尾,切記在讀取操作完成后使用fclose函數(shù)關(guān)閉文件。


fgetc:讀取單個字符
fgetc函數(shù)用來讀取一個字符,在代碼實例中我通過一個一個讀取字符,當遇到\n字符時將其轉(zhuǎn)換成html文件中的br標記,以便在游覽器中顯示具體的換行效果,當然此函數(shù)的效率肯定是比較低的,不建議使用。


PHP文件讀取操作函數(shù)readfile、fpassthru、file之間的區(qū)別


三個函數(shù)共同之處是一次可以讀取整個文件,而不是一次讀一行或一個字符。區(qū)別在于:
readfile函數(shù)打開文件,返回文件內(nèi)容直接輸出在游覽器上,與fopen函數(shù)一樣,函數(shù)返回值為文件的字符總數(shù),readfile函數(shù)的第二個參數(shù)是可選項,指明PHP是否應(yīng)在include_path中查找文件。在代碼實例中,我使用echo語句不是用來輸出讀取的文件內(nèi)容,而是輸出讀取的文件字符總數(shù),讀取的文件內(nèi)容readfile函數(shù)已自動輸出,這一點必須明確!readfile函數(shù)原型如下:
int readfile(string filename,int[optional] use_include_path)

file函數(shù)是另一種讀取文件的方法,它是把讀取的文件內(nèi)容送到一個數(shù)組中,每行一個數(shù)組單元。file函數(shù)原型如下:
array file(string filename,bool[optional] use_include_path)

fpassthru()函數(shù)用來輸出文件指針處的所有剩余數(shù)據(jù),即如果文件指針并不在開頭,它只輸出文件指針后面的數(shù)據(jù)。該函數(shù)將給定的文件指針從當前的位置讀取到EOF,并把結(jié)果寫到輸出緩沖區(qū),返回值為輸出的字符數(shù)。發(fā)生錯誤時,返回FALSE。與readfile()函數(shù)相比,fpassthru()函數(shù)需要首先打開文件,數(shù)據(jù)讀取完畢后要關(guān)閉文件。


fread與file_exists、filesize函數(shù)


fread函數(shù)也是讀取文件的一種方法,其可以從文件中讀取任意字節(jié),要么滿足length要么讀到文件末尾。read函數(shù)原型如下:


string fread(resource fp,int length)

在用到fread函數(shù)時,當你想讀取文件全部數(shù)據(jù),又不知道文件數(shù)據(jù)長度時,filesize函數(shù)可以解決這個問題,即


<?
  @$fp = fopen("leapsoulcn.txt","r") or die("system error");
  echo fread($fp,filesize("leapsoulcn.txt"));
  fclose($fp);
?>

在PHP文件讀寫操作教程中我們還沒有使用過file_exists函數(shù),通常在PHP網(wǎng)站開發(fā)中,出于各種考慮,有時當文件不存在時,我們并不像創(chuàng)建新文件,這時我們就需要在使用fopen函數(shù)前使用file_exists函數(shù)判斷文件是否存在,即

<?
if(file_exists("leapsoulcn.txt"))
{
  //進行PHP文件讀寫操作
}
?>

看完上述內(nèi)容,你們掌握如何在PHP項目中對文件進行讀取的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

文章名稱:如何在PHP項目中對文件進行讀取-創(chuàng)新互聯(lián)
本文地址:http://vcdvsql.cn/article26/dcoccg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄網(wǎng)站設(shè)計公司企業(yè)建站企業(yè)網(wǎng)站制作網(wǎng)站策劃移動網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名