php自學(xué)尊重第13章文件處理_第1頁(yè)
php自學(xué)尊重第13章文件處理_第2頁(yè)
php自學(xué)尊重第13章文件處理_第3頁(yè)
php自學(xué)尊重第13章文件處理_第4頁(yè)
php自學(xué)尊重第13章文件處理_第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、文件處理 本講大綱:1、打開(kāi)/關(guān)閉文件 2、讀寫(xiě)文件 3、操作文件 支持網(wǎng)站: 文件處理概述 文件處理包括讀取、關(guān)閉、重寫(xiě)等,掌握文件的處理需要讀者理清思路,掌握文件處理的關(guān)鍵步驟和常用函數(shù),完全可以運(yùn)用自如。 例如,訪問(wèn)一個(gè)文件需要3步:打開(kāi)文件、讀寫(xiě)文件和關(guān)閉文件。其他的操作要么是包含在讀寫(xiě)文件中(如顯示內(nèi)容、寫(xiě)入內(nèi)容等),要么與文件自身的屬性有關(guān)系(如文件遍歷、文件改名等)。 打開(kāi)/關(guān)閉文件 1打開(kāi)文件 在PHP中使用fopen()函數(shù)打開(kāi)文件,fopen()函數(shù)的語(yǔ)法如下:resource fopen ( string filename, string mode , bool use_

2、include_path);filename是要打開(kāi)的包含路徑的文件名,可以是相對(duì)路徑,也可以是絕對(duì)路徑。如果沒(méi)有任何前綴則表示打開(kāi)的是本地文件。mode是打開(kāi)文件的方式,可取的值如表13.1所示。use_include_path是可選的,該參數(shù)在配置文件php.ini中指定一個(gè)路徑,如F:AppServ wwwmess.php,如果希望服務(wù)器在這個(gè)路徑下打開(kāi)所指定的文件,可以設(shè)置為1或 true。2關(guān)閉文件 對(duì)文件的操作結(jié)束后應(yīng)該關(guān)閉這個(gè)文件,否則可能引起錯(cuò)誤。在PHP中使用fclose()函數(shù)關(guān)閉文件,該函數(shù)的語(yǔ)法如下:bool fclose ( resource handle ) ; 該

3、函數(shù)將參數(shù)handle指向的文件關(guān)閉,如果成功,返回true,否則返回false。其中的文件指針必須是有效的,并且是通過(guò)fopen()函數(shù)成功打開(kāi)的文件。例如:讀寫(xiě)文件1從文件中讀取數(shù)據(jù) 從文件中讀取數(shù)據(jù),可以讀取一個(gè)字符、一行字串或整個(gè)文件,還可以讀取任意長(zhǎng)度的字串。1)讀取整個(gè)文件:readfile()、file()和file_get_contents()(1)readfile()函數(shù) readfile()函數(shù)用于讀入一個(gè)文件并將其寫(xiě)入到輸出緩沖,如果出現(xiàn)錯(cuò)誤則返回false。函數(shù)語(yǔ)法如下:int readfile(string filename) 使用readfile()函數(shù),不需要打開(kāi)

4、/關(guān)閉文件,不需要echo/print等輸出語(yǔ)句,直接寫(xiě)出文件路徑即可。(2)file()函數(shù) file()函數(shù)也可以讀取整個(gè)文件的內(nèi)容,只是file()函數(shù)將文件內(nèi)容按行存放到數(shù)組中,包括換行符在內(nèi)。如果失敗則返回false。函數(shù)語(yǔ)法如下:array file(string filename)(3)file_get_contents()函數(shù) 該函數(shù)將文件內(nèi)容(filename)讀入一個(gè)字符串。如果有offset和maxlen參數(shù),將在參數(shù)offset所指定的位置開(kāi)始讀取長(zhǎng)度為maxlen的內(nèi)容。如果失敗,返回false。函數(shù)語(yǔ)法如下:string file_get_contents(stri

5、ng filename,int offset,int maxlen)該函數(shù)適用于二進(jìn)制對(duì)象,是將整個(gè)文件的內(nèi)容讀入到一個(gè)字符串中的首選方式。 讀寫(xiě)文件2)讀取一行數(shù)據(jù):fgets()和fgetss()(1)fgets()函數(shù) fgets()函數(shù)用于一次讀取一行數(shù)據(jù)。函數(shù)語(yǔ)法如下:string fgets( int handle , int length )handle是被打開(kāi)的文件,length是要讀取的數(shù)據(jù)長(zhǎng)度。 函數(shù)能夠?qū)崿F(xiàn)從handle指定文件中讀取一行并返回長(zhǎng)度最大值為length-1個(gè)字節(jié)的字符串。在遇到換行符、EOF或者讀取了length-1個(gè)字節(jié)后停止。如果忽略length參數(shù),

6、那么讀取數(shù)據(jù)直到行結(jié)束。(2)fgetss()函數(shù) fgetss()函數(shù)是fgets()函數(shù)的變體,用于讀取一行數(shù)據(jù),同時(shí),fgetss()函數(shù)會(huì)過(guò)濾掉被讀取內(nèi)容中的html和php標(biāo)記。函數(shù)語(yǔ)法如下string fgetss ( resource handle , int length , string allowable_tags ) 該函數(shù)能夠從讀取的文件中過(guò)濾掉任何html和php標(biāo)記。可以使用allowable_tags參數(shù)來(lái)控制哪些標(biāo)記不被過(guò)濾掉。讀寫(xiě)文件3)讀取一個(gè)字符:fgetc() 在對(duì)某一個(gè)字符進(jìn)行查找、替換時(shí),需要有針對(duì)性地對(duì)某個(gè)字符進(jìn)行讀取,在PHP中可以使用fgetc

7、()函數(shù)實(shí)現(xiàn)此功能。函數(shù)語(yǔ)法如下:string fgetc ( resource handle )該函數(shù)返回一個(gè)字符,該字符從handle指向的文件中得到。遇到EOF則返回false。 4)讀取任意長(zhǎng)度的字串:fread() fread()可以從文件中讀取指定長(zhǎng)度的數(shù)據(jù),函數(shù)語(yǔ)法如下:string fread ( int handle, int length )參數(shù)handle為指向的文件資源,length是要讀取的字節(jié)數(shù)。當(dāng)函數(shù)讀取length個(gè)字節(jié)或到達(dá)EOF時(shí)停止執(zhí)行。 讀寫(xiě)文件2將數(shù)據(jù)寫(xiě)入文件 寫(xiě)入數(shù)據(jù)也是PHP中常用的文件操作,在PHP中使用fwrite()和file_put_con

8、tents()函數(shù)向文件中寫(xiě)入數(shù)據(jù)。fwrite()函數(shù)也稱為fputs(),它們的用法相同。fwrite()函數(shù)的語(yǔ)法如下:int fwrite ( resource handle, string string , int length )該函數(shù)把內(nèi)容string寫(xiě)入文件指針handle處。如果指定了長(zhǎng)度length,則寫(xiě)入length個(gè)字節(jié)后停止。如果文件內(nèi)容長(zhǎng)度小于length,則會(huì)輸出全部文件內(nèi)容。file_put_contents()函數(shù)是PHP 5新增的函數(shù),其語(yǔ)法為:int file_put_contents ( string filename, string data , in

9、t flags)filename為寫(xiě)入數(shù)據(jù)的文件。data為要寫(xiě)入的數(shù)據(jù)。flags可以是FILE_USE_INCLUDE_PATH、FILE_APPEND或LOCK_EX,LOCK_EX為獨(dú)占鎖定。注意:使用file_put_contents()函數(shù)和依次調(diào)用fopen()、fwrite()、fclose()函數(shù)的功能一樣。 操作文件 除了可以對(duì)文件內(nèi)容進(jìn)行讀寫(xiě),對(duì)文件本身同樣也可以進(jìn)行操作,如復(fù)制、重命名、查看修改日期等。PHP內(nèi)置了大量的文件操作函數(shù)。bool copy( string path1, string path2):將文件從path1復(fù)制到path2。如果成功,返回true,

10、失敗則返回false。例如:copy(tm.txt,./tm.txt)boolrename(stringfilename1,string filename2):把name1重命名為Name2。例如:rename(1.txt,tm.txt)bool unlink( string filename )刪除文件,成功返回true,失敗則返回False。例如:unlink(./tm.txt)int fileatime( string filename )返回文件最后一次被訪問(wèn)的時(shí)間,時(shí)間以UNIX時(shí)間戳的方式返回。例如:fileatime(1.txt)int filemtime( string fil

11、ename )返回文件最后一次被修改的時(shí)間,時(shí)間以UNIX時(shí)間戳的方式返回。例如:date(Y-m-d H:i:s, filemtime(1.txt)int filesize( string filename )取得文件filename的大?。╞ytes)。例如:filesize(1.txt)array pathinfo(string name , int options)返回一個(gè)數(shù)組,包含文件name的路徑信息。有dirname、basename和extension??梢酝ㄟ^(guò)option設(shè)置要返回的信息,有PATHINFO_DIRNAME、PATHINFO_BASENAME和PATHINFO_EXTENSION。默認(rèn)為返回全部。例如:$arr = pathinfo(/tm/sl/12/5/1.txt);foreach($arr as $method = $value)echo $method.“: ”.$value.“”;string realpath ( string filename )返回文件filename的絕對(duì)路徑。如c:tmp1.txtrea

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論