天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

PHP文件讀寫操作之文件讀取方法詳解

php文件讀取操作相對于文件寫入操作涉及更多的php文件操作函數(shù),在代碼實(shí)例中會詳細(xì)介紹這些函數(shù)。
  讀取文本文件中存儲數(shù)據(jù)的方式主要涉及的三個(gè)步驟及部分文件操作函數(shù)如下:
  1、打開文件(文件操作函數(shù):fopen)
  2、文件數(shù)據(jù)讀取(文件操作函數(shù):fgets、file、readfile、feof等)
  3、關(guān)閉文件(文件操作函數(shù):fclose)

  下面仍然以php文件讀寫操作代碼實(shí)例講解文件讀取方法的具體應(yīng)用,在實(shí)例中,通過調(diào)用不同的php文件讀取操作函數(shù)讀取文本文件中的數(shù)據(jù),你可以加深php文件讀取操作函數(shù)的理解,以便在php網(wǎng)站開發(fā)中合理應(yīng)用。文本文件中寫入的數(shù)據(jù)來自于php文件讀寫操作之文件寫入教程,fopen函數(shù)中關(guān)于文件讀寫模式也可參考此文。
  php文件讀取操作代碼實(shí)例
復(fù)制代碼 代碼如下:
<?
$readFun = "fread";
switch ($readFun)
{
case "fgetss":
@$fp = fopen("leapsoulcn.txt","r") or die("system error");
$allowable_tags = "<h1>";
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;
}
?>

注釋:在上述實(shí)例中你可以通過對$readFun賦值來實(shí)現(xiàn)不同的php文件讀取方法的調(diào)用,涉及的php文件讀取操作函數(shù)有fgets、fgetss、fgetcsv、readfile、fpassthru、file、fgetc等函數(shù)。
php文件讀取操作函數(shù)fgets、fgetss、fgetcsv之間的區(qū)別
  在代碼實(shí)例中,默認(rèn)php文件讀取操作函數(shù)為fgets,fgetss與fgetcsv函數(shù)的功能與fgets一樣,都是一次讀取文件中的一行,直到文件末尾。此處我設(shè)定讀取文本文件中的數(shù)據(jù)長度為100,即最大讀取長度為99(100-1),這樣,當(dāng)遇到換行符/n或文件結(jié)束符EOF或從文件中讀取完99個(gè)字節(jié)時(shí)就停止讀取數(shù)據(jù)。fgets函數(shù)返回文件讀取的數(shù)據(jù),字符串型。
  fgetss函數(shù)是fgets函數(shù)的一個(gè)變體,它能夠剝離php和HTML標(biāo)記,通過傳遞第三參數(shù)來過濾不必要的數(shù)據(jù),可以提高網(wǎng)站安全性,比如留言本中可以過濾用戶的輸入數(shù)據(jù),fgetss函數(shù)原型如下:
復(fù)制代碼 代碼如下:
string fgetss(resource fp,int length, string[optional] allowable_tags)

allowable_tags參數(shù)是可選項(xiàng),實(shí)例中我事先在leapsoulcn.txt文件中寫入了包含html、body、h1標(biāo)記的一行文字,然后在代碼中我設(shè)定只允許h1標(biāo)記可以出現(xiàn)。
  fgetcsv函數(shù)是fgets的另一個(gè)變體,區(qū)別在與,當(dāng)你的文本文件中寫入的數(shù)據(jù)使用了定界符,可以使用fgetcsv將一行分解成多行,返回的結(jié)果存儲在數(shù)組中,函數(shù)原型如下
復(fù)制代碼 代碼如下:
array fgetcsv(resource fp,int length, string[optional] delimiter,string[optional] enclosure)

delimiter是可選項(xiàng),由于在之前寫入文件的數(shù)據(jù)中我是用了/t,所以在實(shí)例中文件讀取函數(shù)fgetcsv中的定界符我使用了/t,然后通過print_r打印出fgetcsv返回的數(shù)組結(jié)構(gòu)。
  三個(gè)php文件讀取操作函數(shù)fgets、fgetss、fgetcsv共同之處在于事先都需要使用fopen函數(shù)打開讀取的文件,同時(shí)通過feof函數(shù)判斷是否文件指針到達(dá)文件末尾,切記在讀取操作完成后使用fclose函數(shù)關(guān)閉文件。
  fgetc:讀取單個(gè)字符
  fgetc函數(shù)用來讀取一個(gè)字符,在代碼實(shí)例中我通過一個(gè)一個(gè)讀取字符,當(dāng)遇到/n字符時(shí)將其轉(zhuǎn)換成html文件中的br標(biāo)記,以便在游覽器中顯示具體的換行效果,當(dāng)然此函數(shù)的效率肯定是比較低的,不建議使用。
  php文件讀取操作函數(shù)readfile、fpassthru、file之間的區(qū)別
  三個(gè)函數(shù)共同之處是一次可以讀取整個(gè)文件,而不是一次讀一行或一個(gè)字符。區(qū)別在于:
  readfile函數(shù)打開文件,返回文件內(nèi)容直接輸出在游覽器上,與fopen函數(shù)一樣,函數(shù)返回值為文件的字符總數(shù),readfile函數(shù)的第二個(gè)參數(shù)是可選項(xiàng),指明php是否應(yīng)在include_path中查找文件。在代碼實(shí)例中,我使用echo語句不是用來輸出讀取的文件內(nèi)容,而是輸出讀取的文件字符總數(shù),讀取的文件內(nèi)容readfile函數(shù)已自動輸出,這一點(diǎn)必須明確!readfile函數(shù)原型如下:
復(fù)制代碼 代碼如下:
int readfile(string filename,int[optional] use_include_path)

  file函數(shù)是另一種讀取文件的方法,它是把讀取的文件內(nèi)容送到一個(gè)數(shù)組中,每行一個(gè)數(shù)組單元。file函數(shù)原型如下:
復(fù)制代碼 代碼如下: array file(string filename,bool[optional] use_include_path)
  fpassthru()函數(shù)用來輸出文件指針處的所有剩余數(shù)據(jù),即如果文件指針并不在開頭,它只輸出文件指針后面的數(shù)據(jù)。該函數(shù)將給定的文件指針從當(dāng)前的位置讀取到EOF,并把結(jié)果寫到輸出緩沖區(qū),返回值為輸出的字符數(shù)。發(fā)生錯(cuò)誤時(shí),返回FALSE。與readfile()函數(shù)相比,fpassthru()函數(shù)需要首先打開文件,數(shù)據(jù)讀取完畢后要關(guān)閉文件。
  fread與file_exists、filesize函數(shù)
  fread函數(shù)也是讀取文件的一種方法,其可以從文件中讀取任意字節(jié),要么滿足length要么讀到文件末尾。read函數(shù)原型如下:
復(fù)制代碼 代碼如下: string fread(resource fp,int length)
  在用到fread函數(shù)時(shí),當(dāng)你想讀取文件全部數(shù)據(jù),又不知道文件數(shù)據(jù)長度時(shí),filesize函數(shù)可以解決這個(gè)問題,即
復(fù)制代碼 代碼如下:
<?
  @$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ā)中,出于各種考慮,有時(shí)當(dāng)文件不存在時(shí),我們并不像創(chuàng)建新文件,這時(shí)我們就需要在使用fopen函數(shù)前使用file_exists函數(shù)判斷文件是否存在,即
復(fù)制代碼 代碼如下:
<?
if(file_exists("leapsoulcn.txt"))
{
  //進(jìn)行php文件讀寫操作
}
?>

以上就是php文件讀寫操作教程之文件讀取操作的各種方法介紹,通過合理應(yīng)用php文件讀寫操作函數(shù),可以實(shí)現(xiàn)簡單的留言本、網(wǎng)站log記錄等功能。

php技術(shù)PHP文件讀寫操作之文件讀取方法詳解,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 久久午夜免费视频 | 中文字幕在线观看 | 国产一区二区无码蜜芽精品 | YELLOW免费观看完整视频 | 黑丝美女被人操 | 国产精品青青在线麻豆 | 久久久久久久久久毛片精品美女 | 中文字幕午夜福利片 | 亚洲乱码AV久久久久久久 | 亚洲精品沙发午睡系列 | 日韩 无码 手机 在线 | 回复术士勇者免费观看全集 | 国产亚洲视频在线观看 | 久久久久99精品成人片三人毛片 | 亚洲黄色在线 | 老阿姨儿子一二三区 | 飘雪在线观看免费高清完整版韩国 | 久久麻豆国产国产AV | 熟女人妻AV五十路六十路 | 久久这里的只有是精品23 | 大桥未久在线看 | 色悠悠电影网 | 午夜日韩久久影院 | 麻生希第一部快播 | 九色终合九色综合88 | 老头扒开粉缝亲我下面 | 欧美精品v欧洲高清 | 久久久无码精品一区二区三区 | 找老女人泻火对白自拍 | 成人免费观看www视频 | 日本一二三区在线视频 | 撕烂衣服扒开胸罩揉爆胸 | 国产欧美第一页 | 欧美三级aaa| 亚洲国产精品无码中文字满 | 好嗨哟在线看片免费 | 校园全肉高h湿一女多男 | 国产成人在线视频免费观看 | 囯产精品麻豆巨作久久 | 野花日本大全免费观看3中文版 | 在线观看a视频 |