?這篇文章給大家分享的是PHP中怎樣實(shí)現(xiàn)讀寫文件的內(nèi)容。讀寫文件是很基礎(chǔ)的一個(gè)從操作,因此分享給新手朋友做個(gè)參考,文中示例代碼介紹的非常詳細(xì),感興趣的朋友接下來(lái)一起跟隨小編看看吧。
????在PHP中讀寫文件,可以用到一下內(nèi)置函數(shù):
????1.fopen(創(chuàng)建文件和打開文件)
????語(yǔ)法:
fopen(filename,mode)
????filename,規(guī)定要打開的文件。mode,打開文件的模式,可能的值見下表。
mode | 說(shuō)明 |
---|---|
“r” | 只讀方式打開,將文件指針指向文件開頭。 |
“r+” | 讀寫方式打開,將文件指針指向文件開頭。 |
“w” | 寫入方式打開,將文件指針指向文件開頭并將文件大小截為零。如果文件不存在則嘗試創(chuàng)建。 |
“w+” | 讀寫方式打開,將文件指針指向文件開頭并將文件大小截為零。如果文件不存在則嘗試創(chuàng)建。 |
“a” | 寫入方式打開,將文件指針指向文件末尾。如果文件不存在則嘗試創(chuàng)建。 |
“a+” | 讀寫方式打開,將文件指針指向文件末尾。如果文件不存在則嘗試創(chuàng)建。 |
????如果成功打開文件,fopen函數(shù)的返回值是一個(gè)文件指針,如果出錯(cuò),返回 FALSE。
????示例:
<?php $fp = fopen("test.txt", "r"); ?>
????2.fclose(關(guān)閉文件)
????語(yǔ)法:
fclose(filepointer)
????filepointer,要關(guān)閉的文件指針。如果成功,fclose 函數(shù)返回 TRUE,如果失敗,fclose 函數(shù)返回 FALSE。
????示例:
<?php $fp = fopen("test.txt", "r"); fclose($fp); ?>
????3.feof(檢測(cè)是否已到達(dá)文件末尾)
????語(yǔ)法:
feof(filepointer)
????filepointer,要檢測(cè)的文件指針,該指針必須指向成功打開沒(méi)有關(guān)閉的文件。如果文件指針到了文件末尾或者出錯(cuò)時(shí),feof函數(shù)返回 TRUE。
????示例:
<?php $fp = fopen("test.txt", "r"); while(! feof($fp)) { echo fgets($fp). "<br />"; } fclose($fp); ?>
????4.fgets(從文件指針中讀取一行)
????語(yǔ)法:
fgets(filepointer)
????filepointer,要讀取的文件指針。如果成功,從文件中讀取一行并返回字符串,如果失敗,返回 FALSE。
????示例:
<?php $fp = fopen("test.txt", "r"); if($fp) { for($i=1;! feof($fp);$i++) { echo "行".$i." : ".fgets($fp). "<br />"; } } else { echo "打開文件失敗"; } fclose($fp); ?>
????假設(shè)test.txt的內(nèi)容為:
hello world
hello cnblogs
hello heihaozi
hello everyone
????頁(yè)面輸出的結(jié)果為:
行1 : hello world
行2 : hello cnblogs
行3 : hello heihaozi
行4 : hello everyone
????5.fwrite(寫入文件)
????語(yǔ)法:
fwrite(filepointer,string)
????filepointer,要寫入的文件指針。string,要寫入的字符串。如果成功,返回寫入的字符數(shù),如果失敗,返回 FALSE。
????示例:
<?php $fp = fopen("test.txt", "w");//文件被清空后再寫入 if($fp) { $count=0; for($i=1;$i<=5;$i++) { $flag=fwrite($fp,"行".$i." : "."Hello World!\r\n"); if(!$flag) { echo "寫入文件失敗<br>"; break; } $count+=$flag; } echo "共寫入".$count."個(gè)字符"; } else { echo "打開文件失敗"; } fclose($fp); ?>
????頁(yè)面輸出的結(jié)果為:
共寫入100個(gè)字符
????test.txt文件會(huì)被寫入:
行1 : Hello World!
行2 : Hello World!
行3 : Hello World!
行4 : Hello World!
行5 : Hello World!
????注:為了簡(jiǎn)化操作,部分函數(shù)的可選參數(shù)沒(méi)有列出。