最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP文件讀寫(xiě)操作之文件讀取方法詳解

 更新時(shí)間:2011年01月13日 23:35:08   作者:  
在上一篇PHP教程中介紹了如何利用PHP實(shí)現(xiàn)文件讀寫(xiě)操作中的文件寫(xiě)入功能,接下來(lái)和大家分享PHP文件讀取功能的應(yīng)用實(shí)例
PHP文件讀取操作相對(duì)于文件寫(xiě)入操作涉及更多的PHP文件操作函數(shù),在代碼實(shí)例中會(huì)詳細(xì)介紹這些函數(shù)。
  讀取文本文件中存儲(chǔ)數(shù)據(jù)的方式主要涉及的三個(gè)步驟及部分文件操作函數(shù)如下:
  1、打開(kāi)文件(文件操作函數(shù):fopen)
  2、文件數(shù)據(jù)讀取(文件操作函數(shù):fgets、file、readfile、feof等)
  3、關(guān)閉文件(文件操作函數(shù):fclose)

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

注釋?zhuān)涸谏鲜鰧?shí)例中你可以通過(guò)對(duì)$readFun賦值來(lái)實(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ù)長(zhǎng)度為100,即最大讀取長(zhǎng)度為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)記,通過(guò)傳遞第三參數(shù)來(lái)過(guò)濾不必要的數(shù)據(jù),可以提高網(wǎng)站安全性,比如留言本中可以過(guò)濾用戶(hù)的輸入數(shù)據(jù),fgetss函數(shù)原型如下:
復(fù)制代碼 代碼如下:

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

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

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

delimiter是可選項(xiàng),由于在之前寫(xiě)入文件的數(shù)據(jù)中我是用了\t,所以在實(shí)例中文件讀取函數(shù)fgetcsv中的定界符我使用了\t,然后通過(guò)print_r打印出fgetcsv返回的數(shù)組結(jié)構(gòu)。
  三個(gè)PHP文件讀取操作函數(shù)fgets、fgetss、fgetcsv共同之處在于事先都需要使用fopen函數(shù)打開(kāi)讀取的文件,同時(shí)通過(guò)feof函數(shù)判斷是否文件指針到達(dá)文件末尾,切記在讀取操作完成后使用fclose函數(shù)關(guān)閉文件。
  fgetc:讀取單個(gè)字符
  fgetc函數(shù)用來(lái)讀取一個(gè)字符,在代碼實(shí)例中我通過(guò)一個(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ù)打開(kāi)文件,返回文件內(nèi)容直接輸出在游覽器上,與fopen函數(shù)一樣,函數(shù)返回值為文件的字符總數(shù),readfile函數(shù)的第二個(gè)參數(shù)是可選項(xiàng),指明PHP是否應(yīng)在include_path中查找文件。在代碼實(shí)例中,我使用echo語(yǔ)句不是用來(lái)輸出讀取的文件內(nèi)容,而是輸出讀取的文件字符總數(shù),讀取的文件內(nèi)容readfile函數(shù)已自動(dòng)輸出,這一點(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ù)用來(lái)輸出文件指針處的所有剩余數(shù)據(jù),即如果文件指針并不在開(kāi)頭,它只輸出文件指針后面的數(shù)據(jù)。該函數(shù)將給定的文件指針從當(dāng)前的位置讀取到EOF,并把結(jié)果寫(xiě)到輸出緩沖區(qū),返回值為輸出的字符數(shù)。發(fā)生錯(cuò)誤時(shí),返回FALSE。與readfile()函數(shù)相比,fpassthru()函數(shù)需要首先打開(kāi)文件,數(shù)據(jù)讀取完畢后要關(guān)閉文件。
  fread與file_exists、filesize函數(shù)
  fread函數(shù)也是讀取文件的一種方法,其可以從文件中讀取任意字節(jié),要么滿(mǎn)足length要么讀到文件末尾。read函數(shù)原型如下:
復(fù)制代碼 代碼如下:
string fread(resource fp,int length)

  在用到fread函數(shù)時(shí),當(dāng)你想讀取文件全部數(shù)據(jù),又不知道文件數(shù)據(jù)長(zhǎng)度時(shí),filesize函數(shù)可以解決這個(gè)問(wèn)題,即
復(fù)制代碼 代碼如下:

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

在PHP文件讀寫(xiě)操作教程中我們還沒(méi)有使用過(guò)file_exists函數(shù),通常在PHP網(wǎng)站開(kāi)發(fā)中,出于各種考慮,有時(shí)當(dāng)文件不存在時(shí),我們并不像創(chuàng)建新文件,這時(shí)我們就需要在使用fopen函數(shù)前使用file_exists函數(shù)判斷文件是否存在,即
復(fù)制代碼 代碼如下:

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

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

相關(guān)文章

  • 『PHP』PHP截?cái)嗪瘮?shù)mb_substr()使用介紹

    『PHP』PHP截?cái)嗪瘮?shù)mb_substr()使用介紹

    截?cái)辔恼聵?biāo)題,控制在15個(gè)文字,接下來(lái)為大家講解下如何實(shí)現(xiàn)這個(gè)需求,感興趣的朋友可以參考下哈
    2013-04-04
  • php基于Snoopy解析網(wǎng)頁(yè)html的方法

    php基于Snoopy解析網(wǎng)頁(yè)html的方法

    這篇文章主要介紹了php基于Snoopy解析網(wǎng)頁(yè)html的方法,實(shí)例分析了使用Snoopy類(lèi)解析html文件的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-07-07
  • PHP應(yīng)用跨時(shí)區(qū)功能的實(shí)現(xiàn)方法

    PHP應(yīng)用跨時(shí)區(qū)功能的實(shí)現(xiàn)方法

    今天小編就為大家分享一篇關(guān)于PHP應(yīng)用跨時(shí)區(qū)功能的實(shí)現(xiàn)方法,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-03-03
  • 編寫(xiě)PHP腳本過(guò)濾用戶(hù)上傳的圖片

    編寫(xiě)PHP腳本過(guò)濾用戶(hù)上傳的圖片

    這篇文章主要介紹了編寫(xiě)PHP腳本過(guò)濾用戶(hù)上傳的圖片,至于是不是能達(dá)到設(shè)想的準(zhǔn)確過(guò)濾那種圖片的效果,這個(gè)就...需要的朋友可以參考下
    2015-07-07
  • require(),include(),require_once()和include_once()區(qū)別

    require(),include(),require_once()和include_once()區(qū)別

    面試中最容易提到的一個(gè)PHP的問(wèn)題,我想和大家共勉一下: require()和include()有許多相似之處,也有些不同。理解它們的不同點(diǎn)非常重要,否則很容易犯錯(cuò)誤。
    2008-03-03
  • PHP數(shù)組實(shí)例總結(jié)與說(shuō)明

    PHP數(shù)組實(shí)例總結(jié)與說(shuō)明

    PHP中共有超過(guò)30個(gè)新的數(shù)組相關(guān)函數(shù),其中很多通用函數(shù)允許您檢查給定數(shù)組中是否存在特定對(duì)象、對(duì)數(shù)組元素計(jì)數(shù)、增加或刪除元素,或?qū)υ嘏判颉?
    2011-08-08
  • 基于php雙引號(hào)中訪問(wèn)數(shù)組元素報(bào)錯(cuò)的解決方法

    基于php雙引號(hào)中訪問(wèn)數(shù)組元素報(bào)錯(cuò)的解決方法

    下面小編就為大家分享一篇基于php雙引號(hào)中訪問(wèn)數(shù)組元素報(bào)錯(cuò)的解決方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-02-02
  • PHP5.6.8連接SQL Server 2008 R2數(shù)據(jù)庫(kù)常用技巧分析總結(jié)

    PHP5.6.8連接SQL Server 2008 R2數(shù)據(jù)庫(kù)常用技巧分析總結(jié)

    這篇文章主要介紹了PHP5.6.8連接SQL Server 2008 R2數(shù)據(jù)庫(kù)常用技巧,結(jié)合實(shí)例形式分析總結(jié)了PHP5.6.8連接SQL Server 2008 R2數(shù)據(jù)庫(kù)操作步驟、遇到的問(wèn)題及相應(yīng)的解決方法,需要的朋友可以參考下
    2019-05-05
  • php好代碼風(fēng)格的階段性總結(jié)

    php好代碼風(fēng)格的階段性總結(jié)

    這篇文章主要介紹了php好代碼風(fēng)格,階段性總結(jié)了php程序設(shè)計(jì)中變量、函數(shù)、參數(shù)的相關(guān)使用注意事項(xiàng)與編程技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2016-06-06
  • php取出數(shù)組單個(gè)值的方法

    php取出數(shù)組單個(gè)值的方法

    下面小編就為大家分享一篇php取出數(shù)組單個(gè)值的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-03-03

最新評(píng)論

平遥县| 定西市| 若羌县| 崇明县| 红河县| 宝丰县| 襄樊市| 渭源县| 稻城县| 三原县| 特克斯县| 怀安县| 容城县| 东乌| 板桥市| 昌吉市| 沈丘县| 当涂县| 运城市| 仪陇县| 株洲市| 德清县| 宣化县| 禹州市| 富阳市| 禄劝| 宜章县| 宝丰县| 孙吴县| 阜康市| 盱眙县| 海晏县| 临沭县| 衢州市| 建平县| 剑川县| 新乡市| 稻城县| 墨玉县| 温州市| 马鞍山市|