首頁 後端開發 php教程 PHP檔案操作函數功能的應用

PHP檔案操作函數功能的應用

Jun 11, 2018 am 10:34 AM
php 文件讀取

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

PHP檔案讀取操作相對於檔案寫入操作涉及更多的PHP檔案操作函數,在程式碼實例中會詳細介紹這些函數。

讀取文字檔案中儲存資料的方式主要涉及的三個步驟及部分檔案操作函數如下:

#1、開啟檔案(檔案操作函數:fopen)
2、文件資料讀取(檔案操作函數:fgets、file、readfile、feof等)
3、關閉檔案(檔案操作函數:fclose)

下面仍以PHP檔案讀寫操作程式碼實例講解文件讀取方法的具體應用,在實例中,透過呼叫不同的PHP檔案讀取操作函數讀取文字檔案中的數據,你可以加深PHP檔案讀取操作函數的理解,以便在PHP網站開發中合理應用。文字檔案中寫入的資料來自於PHP檔案讀寫操作之檔案寫入教程,fopen函數中關於檔案讀寫模式也可參考此文。

PHP檔案讀取操作程式碼實例

<?
$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;
}
?>
登入後複製

註解:在上述實例中你可以透過對$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函数可以解决这个问题,即

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

在PHP文件读写操作教程中我们还没有使用过file_exists函数,通常在PHP网站开发中,出于各种考虑,有时当文件不存在时,我们并不像创建新文件,这时我们就需要在使用fopen函数前使用file_exists函数判断文件是否存在,即

<?
if(file_exists("leapsoulcn.txt"))
{
  //进行PHP文件读写操作
}
?>
登入後複製

总结:以上就是本篇文的全部内容,希望能对大家的学习有所帮助。

相关推荐:

PHP自动生成表单的方法

php操作MySQL数据库的方法

php针对服务器端预定义变量$_SERVER的方法

以上是PHP檔案操作函數功能的應用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 Dec 24, 2024 pm 04:42 PM

PHP 8.4 帶來了多項新功能、安全性改進和效能改進,同時棄用和刪除了大量功能。 本指南介紹如何在 Ubuntu、Debian 或其衍生版本上安裝 PHP 8.4 或升級到 PHP 8.4

我後悔之前不知道的 7 個 PHP 函數 我後悔之前不知道的 7 個 PHP 函數 Nov 13, 2024 am 09:42 AM

如果您是經驗豐富的PHP 開發人員,您可能會感覺您已經在那裡並且已經完成了。操作

如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 Dec 20, 2024 am 11:31 AM

Visual Studio Code,也稱為 VS Code,是一個免費的原始碼編輯器 - 或整合開發環境 (IDE) - 可用於所有主要作業系統。 VS Code 擁有大量針對多種程式語言的擴展,可以輕鬆編寫

在PHP API中說明JSON Web令牌(JWT)及其用例。 在PHP API中說明JSON Web令牌(JWT)及其用例。 Apr 05, 2025 am 12:04 AM

JWT是一種基於JSON的開放標準,用於在各方之間安全地傳輸信息,主要用於身份驗證和信息交換。 1.JWT由Header、Payload和Signature三部分組成。 2.JWT的工作原理包括生成JWT、驗證JWT和解析Payload三個步驟。 3.在PHP中使用JWT進行身份驗證時,可以生成和驗證JWT,並在高級用法中包含用戶角色和權限信息。 4.常見錯誤包括簽名驗證失敗、令牌過期和Payload過大,調試技巧包括使用調試工具和日誌記錄。 5.性能優化和最佳實踐包括使用合適的簽名算法、合理設置有效期、

php程序在字符串中計數元音 php程序在字符串中計數元音 Feb 07, 2025 pm 12:12 PM

字符串是由字符組成的序列,包括字母、數字和符號。本教程將學習如何使用不同的方法在PHP中計算給定字符串中元音的數量。英語中的元音是a、e、i、o、u,它們可以是大寫或小寫。 什麼是元音? 元音是代表特定語音的字母字符。英語中共有五個元音,包括大寫和小寫: a, e, i, o, u 示例 1 輸入:字符串 = "Tutorialspoint" 輸出:6 解釋 字符串 "Tutorialspoint" 中的元音是 u、o、i、a、o、i。總共有 6 個元

您如何在PHP中解析和處理HTML/XML? 您如何在PHP中解析和處理HTML/XML? Feb 07, 2025 am 11:57 AM

本教程演示瞭如何使用PHP有效地處理XML文檔。 XML(可擴展的標記語言)是一種用於人類可讀性和機器解析的多功能文本標記語言。它通常用於數據存儲

解釋PHP中的晚期靜態綁定(靜態::)。 解釋PHP中的晚期靜態綁定(靜態::)。 Apr 03, 2025 am 12:04 AM

靜態綁定(static::)在PHP中實現晚期靜態綁定(LSB),允許在靜態上下文中引用調用類而非定義類。 1)解析過程在運行時進行,2)在繼承關係中向上查找調用類,3)可能帶來性能開銷。

什麼是PHP魔術方法(__ -construct,__destruct,__call,__get,__ set等)並提供用例? 什麼是PHP魔術方法(__ -construct,__destruct,__call,__get,__ set等)並提供用例? Apr 03, 2025 am 12:03 AM

PHP的魔法方法有哪些? PHP的魔法方法包括:1.\_\_construct,用於初始化對象;2.\_\_destruct,用於清理資源;3.\_\_call,處理不存在的方法調用;4.\_\_get,實現動態屬性訪問;5.\_\_set,實現動態屬性設置。這些方法在特定情況下自動調用,提升代碼的靈活性和效率。

See all articles