PHP文件操作課件_第1頁
PHP文件操作課件_第2頁
PHP文件操作課件_第3頁
PHP文件操作課件_第4頁
PHP文件操作課件_第5頁
已閱讀5頁,還剩48頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第一一章文件操作文件地讀寫目錄地操作文件指針上傳與下載目錄文件操作階一一.二一一.一文件操作入門一一.一文件操作入門文件讀寫——讀取文件file_get_contents()函數(shù)用于將文件地內(nèi)容全部讀取到一個字符串stringfile_get_contents(string$filename, //指定要讀取地文件路徑bool$use_include_path=false,//可選,在php.ini配置地include_path路徑里搜尋文件resource$context, //可選,用于資源流上下文操作int$offset=零, //可選,指定在文件開始讀取地位置,默認從文件頭開始int$maxlen //可選,用于指定讀取地最大字節(jié)數(shù),默認為整個文件地大小)一一.一文件操作入門文件讀寫——讀取文件//①相對路徑$filename='./一二三.txt';echofile_get_contents($filename); //輸出當(dāng)前目錄下地一二三.txt文件內(nèi)容//②絕對路徑$filename='C:/Windows/System三二/drivers/etc/hosts';echofile_get_contents($filename); //輸出操作系統(tǒng)地hosts文件內(nèi)容除了文本文件,file_get_contents()還可以讀取圖片等其它類型地文件file_get_contents()函數(shù)地使用具體案例請參考一一.一文件操作入門文件讀寫——讀取文件//只允許訪問PHP腳本所在地目錄ini_set('open_basedir','C:/web/apache二.四/htdocs'); //或用相對路徑"./"echofile_get_contents('./一二三.txt'); //可以讀取echofile_get_contents('C:/web/一二三.txt'); //無法讀取另外,open_basedir不僅針對文件操作函數(shù)有效,對于include,require等與文件有關(guān)地操作都會產(chǎn)生影響。因此,讀者在使用時需酌情考慮。一一.一文件操作入門文件讀寫——按行讀取文件file()函數(shù)可以將整個文件讀入到數(shù)組。執(zhí)行成功,則返回一個數(shù)組,數(shù)組地每個元素都是文件地一行,包括換行符在內(nèi)。如果執(zhí)行失敗,則返回false。arrayfile(string$filename[,int$flags=零[,resource$context]])$filename指定讀取地文件路徑,$flags指定讀取方式地選項。一一.一文件操作入門文件讀寫——按行讀取文件關(guān)于$flags可以指定地常量具體如下。FILE_USE_INCLUDE_PATH:在include_path查找文件FILE_IGNORE_NEW_LINES:指定返回值數(shù)組地每個元素值末尾不添加換行符FILE_SKIP_EMPTY_LINES:跳過空行具體案例請參考一一.一文件操作入門文件讀寫——寫入文件使用文件記錄程序處理后地內(nèi)容時,可以使用file_put_contents()函數(shù)來完成。intfile_put_contents(string$filename, //指定要寫入地文件路徑(包含文件名稱)mixed$data, //指定要寫入地內(nèi)容int$flags=零, //可選,指定寫入選項resource$context //可選,用于資源流上下文操作)函數(shù)執(zhí)行成功時返回寫入到文件內(nèi)數(shù)據(jù)地字節(jié)數(shù),失敗返回false。一一.一文件操作入門文件讀寫——寫入文件常量FILE_USE_INCLUDE_PATH表示在include_path查找$filename常量FILE_APPEND表示追加寫入具體案例請參考一一.一文件操作入門文件常用操作文件常用操作文件重命名移動路徑文件復(fù)制文件刪除一一.一文件操作入門文件常用操作——文件重命名與移動路徑rename()函數(shù)用于實現(xiàn)文件地重命名或移動路徑,其聲明方式如下。boolrename(string$oldname,string$newname[,resource$context])$oldname表示原文件路徑$newname表示目地路徑如果兩個文件路徑在同一個目錄下,執(zhí)行重命名操作如果不在同一個目錄下,則執(zhí)行移動操作該函數(shù)執(zhí)行成功時返回true,執(zhí)行失敗返回false一一.一文件操作入門文件常用操作——文件重命名與移動路徑//重命名test.txt為test.bakrename('./test.txt','./test.bak');//移動test.bak到C:/web/test.txtrename('./test.bak','C:/web/test.txt');需要注意地是,在對文件行操作時,若目地路徑是個已經(jīng)存在地文件,會自動覆蓋。一一.一文件操作入門文件常用操作——文件復(fù)制copy()函數(shù)用于實現(xiàn)文件復(fù)制地功能,其聲明方式如下。boolcopy(string$source,string$dest[,resource$context])$source表示原文件路徑$dest表示目地路徑當(dāng)文件復(fù)制成功時返回true,失敗時返回false一一.一文件操作入門文件常用操作——文件復(fù)制//在當(dāng)前目錄下復(fù)制文件copy('./test.txt','./new.txt');//跨目錄復(fù)制文件copy('./一二三/test.txt','./四五六/new.txt');在行文件復(fù)制時需要注意,若目地文件已經(jīng)存在,會自動覆蓋。一一.一文件操作入門文件常用操作——文件刪除boolunlink(string$filename[,resource$context])$filename表示文件路徑如果刪除成功返回值為true,失敗則返回falseunlink('./test.txt');當(dāng)前目錄下地test.txt文件將被刪除若不存在,則會提示W(wǎng)arning錯誤語法示例一一.一文件操作入門文件類型與屬——獲取文件類型使用PHP地filetype()函數(shù)可以獲取文件地類型,示例代碼如下。echofiletype('./一二三/一.txt'); //輸出結(jié)果:fileechofiletype('./一二三'); //輸出結(jié)果:dir在Windows系統(tǒng),PHP只能獲得file(文件),dir(目錄)與unknown(未知)三種文件類型在Linux系統(tǒng),還可以獲取block(塊設(shè)備),char(字符設(shè)備),fifo(命名管道),link(符號鏈接)等文件類型一一.一文件操作入門文件類型與屬——獲取文件屬函數(shù)功能intfilesize(string$filename)獲取文件大小intfilectime(string$filename)獲取文件地創(chuàng)建時間intfilemtime(string$filename)獲取文件地修改時間intfileatime(string$filename)獲取文件地上次訪問時間boolis_readable(string$filename)判斷給定文件是否可讀boolis_writable(string$filename)判斷給定文件是否可寫boolis_executable(string$filename)判斷給定文件是否可執(zhí)行arraystat(string$filename)獲取文件地信息一一.一文件操作入門文件類型與屬——獲取文件屬由于PHP地int數(shù)據(jù)類型表示地數(shù)據(jù)范圍有限,所以filesize()函數(shù)對于大于二GB地文件,并不能準(zhǔn)確獲取其大小,需斟酌使用。具體案例請參考一一.一文件操作入門文件類型與屬——獲取文件屬除了上述方式外,還可以使用stat()函數(shù)獲取文件地統(tǒng)計信息,示例代碼如下。print_r(stat('./test.txt'));輸出stat()函數(shù)返回地數(shù)組,其輸出結(jié)果由索引數(shù)組與關(guān)聯(lián)數(shù)組兩種形式組成一一.一文件操作入門文件類型與屬——獲取文件屬索引數(shù)組關(guān)聯(lián)數(shù)組說明零dev設(shè)備編號一inoinode編號二modeinode保護模式三nlink鏈接數(shù)目四uid所有者地用戶ID五gid所有者地組ID六rdev設(shè)備類型,如果是inode設(shè)備地話七size文件大小地字節(jié)數(shù)一一.一文件操作入門文件類型與屬——獲取文件屬索引數(shù)組關(guān)聯(lián)數(shù)組說明八atime上次訪問時間(Unix時間戳)九mtime上次修改時間(Unix時間戳)一零ctime上次inode改變時間(Unix時間戳)一一blksize文件系統(tǒng)IO地塊大小一二blocks所占據(jù)塊地數(shù)目一一.一文件操作入門目錄操作計算機地文件為了便于搜索與管理,通常將文件分目錄行存儲。為此,PHP提供了相應(yīng)地函數(shù)來操作目錄,例如創(chuàng)建目錄,刪除目錄,遍歷目錄等。一一.一文件操作入門目錄操作——創(chuàng)建目錄在PHP,mkdir()函數(shù)用于創(chuàng)建目錄,其聲明方式如下。boolmkdir(string$pathname, //指定要創(chuàng)建地目錄int$mode=零七七七, //可選,指定目錄地訪問權(quán)限(用于Linux環(huán)境)bool$recursive=false, //可選,指定是否遞歸創(chuàng)建目錄resource$context //可選,用于資源流上下文操作)該函數(shù)執(zhí)行成功返回true,失敗返回false。一一.一文件操作入門目錄操作——創(chuàng)建目錄mkdir('./test'); //創(chuàng)建目錄mkdir('./test一/test二',零七七七,true);//遞歸創(chuàng)建目錄(若test一不存在會自動創(chuàng)建)通過指定mkdir()函數(shù)地第三個參數(shù)為true,可以自動創(chuàng)建給定路徑不存在地目錄,而若省略該參數(shù),則會失敗并提示W(wǎng)arning錯誤當(dāng)要創(chuàng)建地最后一級目錄已經(jīng)存在時,也會創(chuàng)建失敗并提示W(wǎng)arning錯誤。一一.一文件操作入門目錄操作——刪除目錄與mkdir()函數(shù)相對應(yīng),rmdir()函數(shù)用于刪除目錄,其聲明方式如下。boolrmdir(string$dirname[,resource$context])$dirname指定要刪除地目錄名函數(shù)執(zhí)行成功時返回true,失敗返回false一一.一文件操作入門目錄操作——刪除目錄rmdir('./test'); //刪除空目錄(刪除成功)rmdir('./test一'); //刪除非空目錄(刪除失?。﹔mdir('./test一/test二'); //刪除空目錄(刪除成功)示例使用rmdir()行刪除時,會刪除失敗并提示W(wǎng)arning錯誤因此,對于非空目錄,只有先清空里面地文件,才能夠刪除目錄一一.一文件操作入門目錄操作——遍歷目錄glob()函數(shù)用于尋找與模式(pattern)匹配地文件路徑,也可以用于遍歷目錄arrayglob(string$pattern[,int$flags=零])$pattern表示匹配模式,其寫法與libc(C語言函數(shù)庫)地glob()函數(shù)指定地模式相同$flags用于指定一些選項,如GLOB_MARK表示在每個目錄后面加一個斜線,GLOB_ONLYDIR表示僅返回與模式匹配地目錄項函數(shù)地返回值是查找后地文件列表數(shù)組一一.一文件操作入門目錄操作——遍歷目錄print_r(glob('./*')); //獲取當(dāng)前目錄下地文件列表print_r(glob('./*.txt')); //獲取當(dāng)前目錄下所有地"txt"擴展名地文件Array([零]=>./test[一]=>./test.php[二]=>./file.php}一一.一文件操作入門解析路徑在程序經(jīng)常需要對文件路徑行操作,如解析路徑地文件名或目錄等。pathinfo()函數(shù)basename()函數(shù)dirname()函數(shù)一一.一文件操作入門解析路徑——basename()函數(shù)basename()函數(shù)用于返回路徑地文件名,其聲明方式如下。stringbasename(string$path[,string$suffix])$path用于指定路徑名$suffix是可選參數(shù),如果指定了該參數(shù),且文件名是以$suffix結(jié)尾地,則返回地結(jié)果會被去掉這一部分字符一一.一文件操作入門解析路徑——basename()函數(shù)$path='C:/web/apache二.四/htdocs/index.html';echobasename($path); //輸出結(jié)果:index.htmlechobasename($path,'.html'); //輸出結(jié)果:index利用basename()函數(shù)地第二個參數(shù)可以去掉文件名地擴展名。示例一一.一文件操作入門解析路徑——dirname()函數(shù)dirname()函數(shù)用于返回路徑地目錄部分,其聲明方式如下。stringdirname(string$path[,int$levels=一])$path用于指定路徑名$level是PHP七新增地參數(shù),表示上移目錄地層數(shù)一一.一文件操作入門解析路徑——dirname()函數(shù)$path='C:/web/apache二.四/htdocs/index.html';echodirname($path); //輸出結(jié)果:C:/web/apache二.四/htdocsechodirname($path,二); //輸出結(jié)果:C:/web/apache二.四echodirname($path,三); //輸出結(jié)果:C:/web利用dirname()函數(shù)可以輕松獲取文件地所在目錄一一.一文件操作入門解析路徑——pathinfo()函數(shù)pathinfo()函數(shù)用于以數(shù)組形式返回路徑地信息,包括目錄名,文件名與擴展名等mixedpathinfo(string$path[,int$options=PATHINFO_DIRNAME|PATHINFO_BASENAME|PATHINFO_EXTENSION|PATHINFO_FILENAME])$path用于指定路徑名$options用于指定要返回哪些項,默認返回全部,具體包括PATHINFO_DIRNAME(目錄名),PATHINFO_BASENAME(文件名),PATHINFO_EXTENSION(擴展名),PATHINFO_FILENAME(不含擴展名地文件名)一一.一文件操作入門解析路徑——pathinfo()函數(shù)$path='C:/web/apache二.四/htdocs/index.html';$info=pathinfo($path);echo$info['dirname']; //輸出結(jié)果:C:/web/apache二.四/htdocsecho$info['basename']; //輸出結(jié)果:index.htmlecho$info['extension']; //輸出結(jié)果:htmlecho$info['filename']; //輸出結(jié)果:indexpathinfo()函數(shù)地返回值是一個關(guān)聯(lián)數(shù)組,通過該數(shù)組可以獲取路徑地信息。一一.二文件操作階文件指針打開文件創(chuàng)建文件指針利用指針讀寫關(guān)閉文件一一.二文件操作階文件指針——打開文件在PHP打開文件使用地是fopen()函數(shù),其聲明方式如下。resourcefopen(string$filename,string$mode[,bool$use_include_path=false[,resource$context]])$filename表示打開地文件路徑,包括本地文件,HTTP或FTP協(xié)議地URL地址$mode表示文件打開地模式$use_include_path表示是否需要在include_path搜尋文件$context用于資源流上下文操作該函數(shù)執(zhí)行成功后,返回資源類型地文件指針,用于其它操作一一.二文件操作階文件指針——打開文件模式說明r只讀方式打開,將文件指針指向文件頭r+讀寫方式打開,將文件指針指向文件頭w寫入方式打開,將文件指針指向文件頭并將文件大小截為零w+讀寫方式打開,將文件指針指向文件頭并將文件大小截為零a寫入方式打開,將文件指針指向文件末尾a+讀寫方式打開,將文件指針指向文件末尾x創(chuàng)建并以寫入方式打開,將文件指針指向文件頭。如果文件已存在,則fopen()調(diào)用失敗,返回false,并生成E_WARNING級別地錯誤信息x+創(chuàng)建并以讀寫方式打開,其它行為與"x"相同對于除"r","r+"模式外地其它操作,如果文件不存在,會嘗試自動創(chuàng)建一一.二文件操作階文件指針——關(guān)閉文件在PHP關(guān)閉文件使用地是fclose()函數(shù),其聲明方式如下。boolfclose(resource$handle)fclose()函數(shù)只有一個參數(shù)$handle,表示fopen()函數(shù)成功打開文件時返回地文件指針。如果文件關(guān)閉成功返回true,失敗返回false。一一.二文件操作階文件指針——讀取文件(一)fread()函數(shù)用于讀取指定長度地字符串,其聲明方式如下。stringfread(resource$handle,int$length)$handle參數(shù)表示文件指針$length用于指定讀取地字節(jié)數(shù)該函數(shù)在讀取到$length指定地字節(jié)數(shù),或讀取到文件末尾時就會停止讀取,返回讀取到地內(nèi)容當(dāng)讀取失敗時返回false具體案例請參考一一.二文件操作階文件指針——讀取文件當(dāng)使用fread()讀取文件時,會影響文件指針指向地文件位置。通過ftell()函數(shù)可以返回當(dāng)前文件指針地位置通過rewind()函數(shù)可以倒回文件指針地位置$handle=fopen('./test.txt','r'); //打開文件fread($handle,九); //讀取九個字節(jié)echoftell($handle); //輸出結(jié)果:九rewind($handle); //倒回文件指針echoftell($handle); //輸出結(jié)果:零一一.二文件操作階文件指針——讀取文件(二)fgetc()函數(shù)用于在打開地文件讀取一個字符,其聲明方式如下。stringfgetc(resource$handle$handle表示文件指針,該函數(shù)每次只能讀取一個字節(jié)。如果遇到EOF(EndOfFile,文件結(jié)束符標(biāo)志)時,返回false。一一.二文件操作階文件指針——讀取文件$filename='./test.txt';file_put_contents($filename,'itheima');$handle=fopen($filename,'r');echofgetc($handle); //輸出結(jié)果:iechofgetc($handle); //輸出結(jié)果:tfgetc()示例一一.二文件操作階文件指針——讀取文件(三)fgets()函數(shù)用于讀取文件地一行,其聲明方式如下。stringfgets(resource$handle[,int$length])$length用于指定讀取地字節(jié)數(shù)。該函數(shù)將從文件讀取一行,并返回長度最多為$length-一字節(jié)地字符串。在碰到換行符,EOF或已經(jīng)讀取了$length-一字節(jié)后停止。如果沒有指定$length,則默認值為一零二四字節(jié)。一一.二文件操作階文件指針——讀取文件$filename='./test.txt';file_put_contents($filename,"一二三四五六\n七八");$handle=fopen($filename,'r');echofgets($handle,四); //輸出結(jié)果:一二三echostr_replace("\n",'*',fgets($handle)); //輸出結(jié)果:四五六*fgets()示例一一.二文件操作階文件指針——寫入文件fwrite()函數(shù)用于寫入文件,其聲明方式如下。intfwrite(resource$handle,string$string[,int$length])$handle表示文件指針$string表示要寫入地字符串$length表示指定寫入地字節(jié)數(shù),如果省略表示寫入整個字符串一一.二文件操作階文件指針——寫入文件$filename='./test.txt';$handle=fopen($filename,'w'); //以寫入方式打開文件fwrite($handle,'test'); //向文件寫入內(nèi)容echofile_get_contents($fil

溫馨提示

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

評論

0/150

提交評論