php文件讀取操作
Jun 08, 2016 pm 05:25 PMphp教程文件讀取操作
讀取文本文件中存儲數(shù)據(jù)的方式主要涉及的三個步驟及部分文件操作函數(shù)如下:
1、打開文件(文件操作函數(shù):fopen)
2、文件數(shù)據(jù)讀取(文件操作函數(shù):fgets、file、readfile、feof等)
3、關閉文件(文件操作函數(shù):fclose)
在代碼實例中,默認php文件讀取操作函數(shù)為fgets,fgetss與fgetcsv函數(shù)的功能與fgets一樣,都是一次讀取文件中的一行,直到文件末尾。此處我設定讀取文本文件中的數(shù)據(jù)長度為100,即最大讀取長度為99(100-1),這樣,當遇到換行符n或文件結束符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ù)是可選項,實例中我事先在leaps教程oulcn.txt文件中寫入了包含html、body、h1標記的一行文字,然后在代碼中我設定只允許h1標記可以出現(xiàn)。
fgetcsv函數(shù)是fgets的另一個變體,區(qū)別在與,當你的文本文件中寫入的數(shù)據(jù)使用了定界符,可以使用fgetcsv將一行分解成多行,返回的結果存儲在數(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ù)組結構。
三個php文件讀取操作函數(shù)fgets、fgetss、fgetcsv共同之處在于事先都需要使用fopen函數(shù)打開讀取的文件,同時通過feof函數(shù)判斷是否文件指針到達文件末尾,切記在讀取操作完成后使用fclose函數(shù)關閉文件。
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是否應在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,并把結果寫到輸出緩沖區(qū),返回值為輸出的字符數(shù)。發(fā)生錯誤時,返回false。與readfile()函數(shù)相比,fpassthru()函數(shù)需要首先打開文件,數(shù)據(jù)讀取完畢后要關閉文件。
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文件讀寫操作
}
?>
以上就是php文件讀寫操作教程之文件讀取操作的各種方法介紹,通過合理應用php文件讀寫操作函數(shù),可以實現(xiàn)簡單的留言本、網(wǎng)站log記錄等功

熱AI工具

Undress AI Tool
免費脫衣服圖片

Undresser.AI Undress
人工智能驅(qū)動的應用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover
用于從照片中去除衣服的在線人工智能工具。

Clothoff.io
AI脫衣機

Video Face Swap
使用我們完全免費的人工智能換臉工具輕松在任何視頻中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的代碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
功能強大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級代碼編輯軟件(SublimeText3)

php blob轉(zhuǎn)file的方法:1、創(chuàng)建一個php示例文件;2、通過“function blobToFile(blob) {return new File([blob], 'screenshot.png', { type: 'image/jpeg' })}”方法實現(xiàn)Blob轉(zhuǎn)File即可。

使用Java的File.length()函數(shù)獲取文件的大小文件大小是在處理文件操作時很常見的一個需求,Java提供了一個很方便的方法來獲取文件的大小,即使用File類的length()方法。本文將介紹如何使用該方法來獲取文件的大小,并給出相應的代碼示例。首先,我們需要創(chuàng)建一個File對象來表示我們想要獲取大小的文件。以下是創(chuàng)建File對象的方法:Filef

想了解更多關于開源的內(nèi)容,請訪問:51CTO鴻蒙開發(fā)者社區(qū)https://ost.51cto.com運行環(huán)境DAYU200:4.0.10.16SDK:4.0.10.15IDE:4.0.600一、創(chuàng)建應用點擊File->newFile->CreateProgect。選擇模版:【OpenHarmony】EmptyAbility:填寫項目名,shici,應用包名com.nut.shici,應用存儲位置XXX(不要有中文,特殊字符,空格)。CompileSDK10,Model:Stage。Device

使用Java的String.valueOf()函數(shù)將基本數(shù)據(jù)類型轉(zhuǎn)換為字符串在Java開發(fā)中,當我們需要將基本數(shù)據(jù)類型轉(zhuǎn)換為字符串時,一種常見的方法是使用String類的valueOf()函數(shù)。這個函數(shù)可以接受基本數(shù)據(jù)類型的參數(shù),并返回對應的字符串表示。在本文中,我們將探討如何使用String.valueOf()函數(shù)進行基本數(shù)據(jù)類型轉(zhuǎn)換,并提供一些代碼示例來

使用Java的File.renameTo()函數(shù)重命名文件在Java編程中,我們經(jīng)常需要對文件進行重命名的操作。Java提供了File類來處理文件操作,其中的renameTo()函數(shù)可以方便地重命名文件。本文將介紹如何使用Java的File.renameTo()函數(shù)來重命名文件,并提供相應的代碼示例。File.renameTo()函數(shù)是File類的一個方法,

char數(shù)組轉(zhuǎn)string的方法:可以通過賦值來實現(xiàn),使用{char a[]=" abc d\0efg ";string s=a;}語法,讓char數(shù)組對string直接賦值,執(zhí)行代碼即可完成轉(zhuǎn)換。

使用java的File.getParent()函數(shù)獲取文件的父路徑在Java編程中,我們經(jīng)常需要操作文件和文件夾。有時候,我們需要獲取一個文件的父路徑,也就是該文件所在文件夾的路徑。Java的File類提供了getParent()方法用于獲取文件或文件夾的父路徑。File類是Java對文件和文件夾的抽象表示,它提供了一系列操作文件和文件夾的方法。其中,get

使用Java的String.replace()函數(shù)替換字符串中的字符(串)在Java中,字符串是不可變的對象,這意味著一旦創(chuàng)建了一個字符串對象,就無法修改它的值。但是,你可能會遇到需要替換字符串中的某些字符或者字符串的情況。這時候,我們可以使用Java的String類中的replace()方法來實現(xiàn)字符串的替換。String類的replace()方法有兩種重
