国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

PHP文件讀取功能的應用實例

2024-05-04 23:34:54
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了PHP文件讀取功能的應用實例以及常用的文件數據讀取的函數的使用方法及區別,非常的詳細,有需要的小伙伴可以參考下。

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

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

1、打開文件(文件操作函數:fopen)

2、文件數據讀取(文件操作函數:fgets、file、readfile、feof等)

3、關閉文件(文件操作函數:fclose)

下面仍然以PHP文件讀寫操作代碼實例講解文件讀取方法的具體應用,在實例中,通過調用不同的PHP文件讀取操作函數讀取文本文件中的數據,你可以加深PHP文件讀取操作函數的理解,以便在PHP網站開發中合理應用。文本文件中寫入的數據來自于PHP文件讀寫操作之文件寫入教程,fopen函數中關于文件讀寫模式也可參考此文。

PHP文件讀取操作代碼實例

 

 
  1. <? 
  2. $readFun = "fread"
  3. switch ($readFun
  4. case "fgetss"
  5. @$fp = fopen("leapsoulcn.txt","r"or die("system error"); 
  6. $allowable_tags = "<h1>"
  7. while (!feof($fp)) { 
  8. $output = fgetss($fp,100,$allowable_tags); 
  9. echo $output
  10. fclose($fp); 
  11. break
  12. case "fgetcsv"
  13. @$fp = fopen("leapsoulcn.txt","r"or die("system error"); 
  14. while (!feof($fp)) { 
  15. $output = fgetcsv($fp,100,"/t"); 
  16. print_r($output); 
  17. fclose($fp); 
  18. break
  19. case "readfile"
  20. echo readfile("leapsoulcn.txt"); 
  21. break
  22. case "fpassthru"
  23. @$fp = fopen("leapsoulcn.txt","r"or die("system error"); 
  24. if(!fpassthru($fp)) 
  25. exit(); 
  26. fclose($fp); 
  27. break
  28. case "file"
  29. $output = file("leapsoulcn.txt"); 
  30. print_r($output); 
  31. break
  32. case "fgetc"
  33. @$fp = fopen("leapsoulcn.txt","r"or die("system error"); 
  34. while (!feof($fp)) { 
  35. $str = fgetc($fp); 
  36. echo ($str == "/n"?"<br/>":$str); 
  37. fclose($fp); 
  38. break
  39. case "fread"
  40. @$fp = fopen("leapsoulcn.txt","r"or die("system error"); 
  41. echo fread($fp,300); 
  42. fclose($fp); 
  43. break
  44. default
  45. @$fp = fopen("leapsoulcn.txt","r"or die("system error"); 
  46. while (!feof($fp)) { 
  47. $output = fgets($fp,100); 
  48. echo $output
  49. fclose($fp); 
  50. break
  51. ?> 

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

PHP文件讀取操作函數fgets、fgetss、fgetcsv之間的區別

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

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

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

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

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

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

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

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

fgetc:讀取單個字符

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

PHP文件讀取操作函數readfile、fpassthru、file之間的區別

三個函數共同之處是一次可以讀取整個文件,而不是一次讀一行或一個字符。區別在于:

readfile函數打開文件,返回文件內容直接輸出在游覽器上,與fopen函數一樣,函數返回值為文件的字符總數,readfile函數的第二個參數是可選項,指明PHP是否應在include_path中查找文件。在代碼實例中,我使用echo語句不是用來輸出讀取的文件內容,而是輸出讀取的文件字符總數,讀取的文件內容readfile函數已自動輸出,這一點必須明確!readfile函數原型如下:

int readfile(string filename,int[optional] use_include_path)

file函數是另一種讀取文件的方法,它是把讀取的文件內容送到一個數組中,每行一個數組單元。file函數原型如下:

array file(string filename,bool[optional] use_include_path)

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

fread與file_exists、filesize函數

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

string fread(resource fp,int length)

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

 

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

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

 

 
  1. <? 
  2. if(file_exists("leapsoulcn.txt")) 
  3.   //進行PHP文件讀寫操作 
  4. ?> 

以上為大家介紹了PHP讀取文件內容的各種方法,通過合理應用PHP文件讀寫操作函數,可以實現簡單的留言本、網站log記錄等功能。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 文昌市| 鹤山市| 新营市| 观塘区| 天峨县| 江油市| 友谊县| 衡山县| 清流县| 登封市| 常德市| 婺源县| 泰兴市| 闻喜县| 德惠市| 怀来县| 九龙县| 肥西县| 晋宁县| 淳安县| 虞城县| 玉田县| 开阳县| 新巴尔虎右旗| 台湾省| 三门县| 富裕县| 东阳市| 闻喜县| 宝鸡市| 福海县| 华宁县| 庆元县| 博乐市| 建水县| 游戏| 通化市| 阿拉善盟| 习水县| 吉水县| 静安区|