




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第6章
文件系統(tǒng)處理6.1文件系統(tǒng)概述文件系統(tǒng)概述文件系統(tǒng)是操作系統(tǒng)用于明確存儲設(shè)備或分區(qū)上的文件的方法和數(shù)據(jù)結(jié)構(gòu),即在存儲設(shè)備上組織文件的方法,利用目錄可以有效地對文件進(jìn)行區(qū)分和管理。操作系統(tǒng)中負(fù)責(zé)管理和存儲文件信息的軟件機(jī)構(gòu)稱為文件管理系統(tǒng),簡稱文件系統(tǒng)。從系統(tǒng)角度來看,文件系統(tǒng)是對文件存儲設(shè)備的空間進(jìn)行組織和分配,負(fù)責(zé)文件存儲并對存入的文件進(jìn)行保護(hù)和檢索的系統(tǒng)。具體地說,它負(fù)責(zé)為用戶建立文件,存入、讀出、修改、轉(zhuǎn)儲文件,控制文件的存取,當(dāng)用戶不再使用時刪除文件等。在PHP中,可以通過其內(nèi)置的文件系統(tǒng)處理函數(shù)完成對Web服務(wù)器端文件系統(tǒng)的操作。PPT模板下載:/moban/行業(yè)PPT模板:/hangye/節(jié)日PPT模板:/jieri/PPT素材下載:/sucai/PPT背景圖片:/beijing/PPT圖表下載:/tubiao/優(yōu)秀PPT下載:/xiazai/PPT教程:/powerpoint/Word教程:/word/Excel教程:/excel/資料下載:/ziliao/PPT課件下載:/kejian/范文下載:/fanwen/試卷下載:/shiti/教案下載:/jiaoan/
謝謝!第6章
文件系統(tǒng)處理6.2目錄的基本操作1.解析目錄路徑2.遍歷目錄3.創(chuàng)建和刪除目錄本節(jié)內(nèi)容目錄的基本操作PHP中提供了一系列的文件系統(tǒng)處理函數(shù)實現(xiàn)諸如目錄路徑解析、目錄創(chuàng)建、目錄復(fù)制、目錄刪除等操作。1.解析目錄路徑指定一個文件的位置,可以使用絕對路徑或相對路徑兩種方式進(jìn)行描述。絕對路徑是從根目錄開始一級一級地進(jìn)入各個子目錄,最后指定該文件名或目錄名;相對路徑是從當(dāng)前目錄進(jìn)入某目錄,最后指定該文件名或目錄名。在系統(tǒng)的每個目錄下都有兩個隱藏的特殊的目錄“.”和“..”,分別表示當(dāng)前目錄和當(dāng)前目錄的父目錄。1.1函數(shù)basename()basename()函數(shù)用來返回目錄路徑中的文件名部分。格式為:
stringbasename(stringpath[,stringsuffix])說明:第一個參數(shù)是必選項,指定被處理的目錄路徑的字符串。第二個參數(shù)是可選項,指定文件的擴(kuò)展名,如果提供了則返回不包含該擴(kuò)展名的文件名。1.1函數(shù)basename()示例6-1:basename()函數(shù)的應(yīng)用。1.2函數(shù)dirname()dirname()函數(shù)用來返回目錄路徑中的去掉文件名后的目錄名。格式為:
stringdirname(stringpath)1.2函數(shù)dirname()示例6-2:dirname()函數(shù)的應(yīng)用。1.3函數(shù)pathinfo()pathinfo()函數(shù)用來返回一個關(guān)聯(lián)數(shù)組,其中包含指定路徑中的目錄名、帶有文件擴(kuò)展名的文件名、不帶有文件擴(kuò)展名的文件名、文件擴(kuò)展名四個部分,分別通過數(shù)組鍵名dirname、basename、filename、extension來引用。格式為:
arraypathinfo(stringpath)1.3函數(shù)pathinfo()示例6-3:pathinfo()函數(shù)的應(yīng)用。2.遍歷目錄在PHP編程時,需要對服務(wù)器某個目錄下面的文件進(jìn)行瀏覽,通常稱為遍歷目錄,主要用到opendir()、readdir()、closedir()、rewinddir()函數(shù)。2.1函數(shù)opendir()opendir()函數(shù)用來打開指定目錄,其返回一個可供其他目錄函數(shù)使用的目錄句柄(資源類型);如果指定目錄不存在或者沒有訪問權(quán)限,則返回FALSE。格式為:
resourceopendir(stringpath)說明:參數(shù)path指定要打開的目錄路徑。2.2函數(shù)readdir()readdir()函數(shù)用來讀取指定目錄,其返回當(dāng)前目錄指針位置的一個文件名,并且將目錄指針向后移動一位;當(dāng)指針位于目錄的結(jié)尾時,因為沒有文件存在而返回FALSE。格式為:
stringreaddir(resourcedir_handle)說明:參數(shù)dir_handle指定之前由opendir()函數(shù)打開的目錄句柄。2.3函數(shù)closedir()closedir()函數(shù)用來關(guān)閉指定目錄,函數(shù)無返回值,運行后將關(guān)閉打開的目錄。格式為:
voidclosedir(resourcedir_handle)說明:參數(shù)dir_handle指定之前由opendir()函數(shù)打開的目錄句柄。2.4函數(shù)rewinddir()rewinddir()函數(shù)用來重置目錄句柄,函數(shù)無返回值,運行后把目錄指針重置到目錄的開始處。格式為:
voidrewinddir(resourcedir_handle)說明:參數(shù)dir_handle指定之前由opendir()函數(shù)打開的目錄句柄。2.遍歷目錄示例6-4:遍歷目錄。注意:在執(zhí)行該示例之前,請確保在同一目錄下有一個名為“myPHP”的文件夾。2.創(chuàng)建和刪除目錄在PHP編程時,需要對某個目錄進(jìn)行創(chuàng)建和刪除,主要用到mkdir()、rmdir()函數(shù)。3.1函數(shù)mkdir()mkdir()函數(shù)用來創(chuàng)建一個新目錄,如果創(chuàng)建成功,則返回TRUE;否則返回FALSE。格式為:
boolmkdir(stringpathname)說明:參數(shù)pathname指定要創(chuàng)建的目錄名稱。3.1函數(shù)mkdir()示例6-5:在myPHP目錄中創(chuàng)建子目錄source。3.2函數(shù)rmdir()rmdir()函數(shù)用來刪除一個已經(jīng)存在的空目錄,對于非空目錄,一般需要使用遞歸的方法刪除每一層目錄中的子目錄和文件。如果刪除成功,則返回TRUE;否則返回FALSE。格式為:
boolrmdir(stringpathname)說明:參數(shù)pathname指定要刪除的目錄名稱。3.2函數(shù)rmdir()示例6-6:刪除myPHP目錄中的子目錄source。PPT模板下載:/moban/行業(yè)PPT模板:/hangye/節(jié)日PPT模板:/jieri/PPT素材下載:/sucai/PPT背景圖片:/beijing/PPT圖表下載:/tubiao/優(yōu)秀PPT下載:/xiazai/PPT教程:/powerpoint/Word教程:/word/Excel教程:/excel/資料下載:/ziliao/PPT課件下載:/kejian/范文下載:/fanwen/試卷下載:/shiti/教案下載:/jiaoan/
謝謝!第6章
文件系統(tǒng)處理6.3文件的基本操作1.打開與關(guān)閉文件2.寫文件3.讀文件本節(jié)內(nèi)容文件的基本操作文件的操作最常見的就是讀(將文件中的數(shù)據(jù)輸入到程序中)和寫(將數(shù)據(jù)保存到文件中)、以前一些其他的相關(guān)處理,這些操作都可以通過PHP提供的眾多與文件有關(guān)的標(biāo)準(zhǔn)函數(shù)來完成。文件的基本操作函數(shù)主要有file_exists()、filesize()、unlink()等。boolfile_exists(stringfilename)intfilesize(stringfilename)boolunlink(stringfilename)1.打開與關(guān)閉文件打開文件,實際上就是建立文件的各種有關(guān)信息,并使文件指針指向該文件,就可以將發(fā)起輸入或輸出流的實體聯(lián)系在一起,以便進(jìn)行讀寫等其他操作;關(guān)閉文件則斷開指針與文件之間的聯(lián)系,即禁止再對該文件進(jìn)行操作。在PHP中可以通過標(biāo)準(zhǔn)函數(shù)fopen()建立與文件資源的連接,使用fclose()函數(shù)關(guān)閉通過fopen()函數(shù)打開的各種資源。1.1函數(shù)fopen()fopen()函數(shù)用來打開一個文件,成功則返回一個指向該文件的文件指針,否則返回FALSE。格式為:
resourcefopen(stringfilename,stringmode)說明:參數(shù)filename指定要被打開文件的URL。這個URL可以是腳本所在的服務(wù)器中的絕對路徑,也可以是相對路徑。參數(shù)mode指定文件打開的模式。1.1函數(shù)fopen()文件模式及其意義如下表所示:1.2函數(shù)fclose()fclose()函數(shù)用來關(guān)閉fopen()函數(shù)打開的文件指針,成功則返回TRUE,否則返回FALSE。格式為:
boolfclose(resourcefile_handle)說明:參數(shù)file_handle指定之前由fopen()函數(shù)打開的文件指針。1.打開與關(guān)閉文件示例6-7:文件的打開和關(guān)閉。2.寫文件在PHP中提供了fwrite()和file_put_contents()函數(shù)將程序中的數(shù)據(jù)保存到文件中。這兩個函數(shù)的功能及其描述如下表所示。2.1函數(shù)fwrite()fwrite()函數(shù)用來把字符串內(nèi)容寫入一個打開的文件中。在文件中通過字符序列“\n”表示換行符,表示文件中一行的末尾(基于Windows的系統(tǒng)使用“\r\n”作為行結(jié)束字符)。該函數(shù)執(zhí)行完成以后會返回寫入的字符數(shù),出現(xiàn)錯誤時則返回FALSE。格式為:
intfwrite(resourcefile_handle,stringdata[,intlength])2.1函數(shù)fwrite()示例6-8:使用fwrite()函數(shù)寫入數(shù)據(jù)到文件。2.2函數(shù)file_put_contents()file_put_contents()函數(shù)用來將數(shù)據(jù)直接寫入到指定的文件中。如果同時調(diào)用多次,并向同一個文件中寫入數(shù)據(jù),則文件中只保存最后一次調(diào)用該函數(shù)寫入的數(shù)據(jù)。因為在每次調(diào)用時都會重新打開文件并將文件中原有的數(shù)據(jù)清空,然后再寫入數(shù)據(jù)。該函數(shù)執(zhí)行完成以后會返回寫入的字符數(shù),出現(xiàn)錯誤時則返回FALSE。格式為:
intfile_put_contents(stringfilename[,mixeddata])2.2函數(shù)file_put_contents()示例6-9:使用file_put_contents()函數(shù)寫入數(shù)據(jù)到文件。3.讀文件在PHP中提供了多個從文件中讀取內(nèi)容的標(biāo)準(zhǔn)函數(shù),可以根據(jù)它們的功能特性在程序中選擇哪個函數(shù)使用。這些函數(shù)的功能及其描述如下表所示。3.1函數(shù)fread()fread()函數(shù)用來在打開的文件中讀取指定長度的字符串,也可以安全用于二進(jìn)制文件的讀取。在區(qū)分二進(jìn)制文件和文本文件的系統(tǒng)上打開文件時,fopen()函數(shù)的mode模式要加上“b”。該函數(shù)執(zhí)行完成以后會返回讀取的內(nèi)容字符串,出現(xiàn)錯誤時則返回FALSE。格式為:
stringfread(resourcefile_handle,intlength)說明:在讀取完length個字節(jié)、或到達(dá)文件末尾(EOF)時,則會停止讀取文件。使用feof()函數(shù)可以檢測是否已到達(dá)文件末尾(EOF)。3.1函數(shù)fread()示例6-10:使用fread()函數(shù)讀取文件中的指定字節(jié)數(shù)的數(shù)據(jù)。3.1函數(shù)fread()示例6-11:使用fread()函數(shù)讀取文件中的全部數(shù)據(jù)。3.1函數(shù)fread()示例6-12:使用fread()函數(shù)循環(huán)讀取文件中的部分?jǐn)?shù)據(jù),直至全部讀完。3.2函數(shù)file_get_contents()file_get_contents()函數(shù)用來把一個文件的內(nèi)容讀入到一個字符串中,其性能要比示例6-11、示例6-12的代碼好得多。file_get_contents()函數(shù)是用于將文件的內(nèi)容讀入到一個字符串中的首選方法。如果操作系統(tǒng)支持,還會使用內(nèi)存映射技術(shù)來增強(qiáng)性能。如果失敗,則返回FALSE。格式為:
stringfile_get_contents(stringfilename)3.2函數(shù)file_get_contents()示例6-13:使用file_get_contents()函數(shù)讀取文件中的全部數(shù)據(jù)。3.3函數(shù)fgets()fgets()函數(shù)用來在打開的文件中讀取一行數(shù)據(jù),如果讀取失敗,則返回FALSE。格式為:
stringfgets(resourcefile_handle[,intlength])說明:參數(shù)length是可選的,指定讀取文件中的一行并返回最多為length-1個字節(jié)的字符串,或者返回遇到換行或EOF之前讀取的所有內(nèi)容。如果忽略該參數(shù),則默認(rèn)為1024個字節(jié)。3.3函數(shù)fgets()示例6-14:使用fgets()函數(shù)讀取文件中的一行數(shù)據(jù)。3.4函數(shù)fgetc()fgetc()函數(shù)用來在打開的文件中讀取當(dāng)前指針位置處的一個字符,如果遇到文件結(jié)束標(biāo)志EOF,則返回FALSE。格式為:
stringfgetc(resourcefile_handle)3.5函數(shù)file()示例6-15:使用fgetc()函數(shù)讀取文件中的一個字符。3.5函數(shù)file()file()函數(shù)用來把整個文件讀入到一個數(shù)組中。數(shù)組中的每個元素都是文件中相應(yīng)的一行,包括換行符在內(nèi)。如果失敗,則返回FALSE。格式為:
arrayfile(stringfilename)3.5函數(shù)file()示例6-16:使用file()函數(shù)讀取文件中的全部數(shù)據(jù)。3.6函數(shù)readfile()readfile()函數(shù)用來讀取指定的整個文件,并立即輸出到輸出緩沖區(qū)。如果成功,則返回從文件中讀入的字節(jié)數(shù);如果失敗,則返回FALSE。格式為:
intreadfile(stringfilename)3.6函數(shù)readfile()示例6-17:使用readfile()函數(shù)讀取文件中的全部數(shù)據(jù),并輸出到輸出緩沖區(qū)。PPT模板下載:/moban/行業(yè)PPT模板:/hangye/節(jié)日PPT模板:/jieri/PPT素材下載:/sucai/PPT背景圖片:/beijing/PPT圖表下載:/tubiao/優(yōu)秀PPT下載:/xiazai/PPT教程:/powerpoint/Word教程:/word/Excel教程:/excel/資料下載:/ziliao/PPT課件下載:/kejian/范文下載:/fanwen/試卷下載:/shiti/教案下載:/jiaoan/
謝謝!第6章
文件系統(tǒng)處理6.4文件的上傳與下載1.文件上傳2.文件下載本節(jié)內(nèi)容1.文件上傳在Web程序中,文件上傳已經(jīng)成為一個常用功能,其目的是客戶可以通過瀏覽器將文件上傳到Web服務(wù)器上的指定目錄中。上傳文件時,需要在客戶端選擇本地磁盤文件,而在Web服務(wù)器端需要接收并處理來自客戶端上傳的文件,所以客戶端和Web服務(wù)端都需要進(jìn)行設(shè)置。1.1客戶端上傳設(shè)置文件上傳的最基本方法是在form表單中通過<inputtype="file">標(biāo)記選擇本地文件進(jìn)行提交,但是必須給<form>標(biāo)簽中的method和enctype屬性設(shè)置相應(yīng)的值,來完成文件的傳遞。如下所示。method="POST":用來指定發(fā)送數(shù)據(jù)的方法。enctype="multipart/form-data":用來指定表單編碼數(shù)據(jù)的方式,這樣服務(wù)器就會知道,我們要傳遞的是一個文件,并且?guī)в谐R?guī)的表單信息。另外,在form表單中可以設(shè)置一個<inputtype="hidden">標(biāo)記、其中name屬性值為“MAX_FILE_SIZE”的隱藏值域,并通過設(shè)置其value屬性限制上傳文件的大?。▎挝粸樽止?jié)),但這個值不能超過PHP的配置文件中的upload_max_filesize參數(shù)所設(shè)置的值。1.1客戶端上傳設(shè)置示例6-18:文件上傳表單(表單限制上傳文件的大小為1MB)。1.2在服務(wù)器端通過PHP處理上傳在客戶端通過HTML表單可以提供本地文件選擇,并提供將文件發(fā)送給服務(wù)器的標(biāo)準(zhǔn)化方式,但并沒有提供相關(guān)功能來確定文件到達(dá)目的地后發(fā)生了什么。上傳文件的接收和后續(xù)處理就要通過PHP腳本來處理。要想通過PHP成功地管理文件上傳,需要通過以下三個方面的信息。設(shè)置PHP配置文件中的參數(shù)$_FILES多維數(shù)組PHP的文件上傳處理函數(shù)1.2.1設(shè)置PHP配置文件中的參數(shù)文件上傳與PHP配置文件的設(shè)置有關(guān)??梢栽O(shè)置php.ini文件中的一些參數(shù),用來精確調(diào)節(jié)PHP的文件上傳功能。在PHP配置文件php.ini中與上傳文件有關(guān)的參數(shù)如下表所示。1.2.2$_FILES多維數(shù)組表單提交給服務(wù)器的數(shù)據(jù),可以通過在PHP腳本中使用全局?jǐn)?shù)組$_GET、$_POST或$_REQUEST接收。而通過POST方法上傳的文件有關(guān)信息都被存儲在多維數(shù)組$_FILES中。表單提交給服務(wù)器的數(shù)據(jù),可以通過在PHP腳本中使用全局?jǐn)?shù)組$_GET、$_POST或$_REQUEST接收。而通過POST方法上傳的文件有關(guān)信息都被存儲在多維數(shù)組$_FILES中。$_FILES數(shù)組的第一個下標(biāo)是表單中<inputtype="file">標(biāo)記的name屬性值,第二個下標(biāo)可以是“name”、“type”、“size”、“tmp_name”或“error”。1.2.2$_FILES多維數(shù)組全局?jǐn)?shù)組$_FILES中的元素說明如下表所示。1.2.3PHP的文件上傳處理函數(shù)文件上傳成功以后,文件會被放置在Web服務(wù)器端的臨時目錄下,文件名是隨機(jī)生成的臨時文件名。該文件在程序執(zhí)行完后將會自動被刪除,在刪除前可以像本地文件一樣進(jìn)行操作。PHP提供了專門用于文件上傳處理的is_uploaded_file()和move_uploaded_file()函數(shù)。①
函數(shù)is_uploaded_file()is_uploaded_file()函數(shù)用來判斷指定的文件是否是通過HTTPPOST上傳的,如果是則返回TRUE,否則返回FALSE。格式為:
boolis_uploaded_file(stringfilename)說明:參數(shù)filename必須指定類似于$_FILES["myfile"]["tmp_name"]的變量,才能判斷指定的文件確實是上傳文件。如果用來判斷從客戶端上傳的文件名$_FILES["myfile"]["name"],則不能正常運行。②
函數(shù)move_uploaded_file()move_uploaded_file()函數(shù)用來把上傳的文件從Web服務(wù)器的臨時目錄中移動到新的位置,如果目標(biāo)文件已經(jīng)存在,將會被覆蓋。
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【勞動合同】計量工程技術(shù)人員勞動合同8篇
- 2024年度民主生活會點評模板
- 小學(xué)六年級下英語試卷
- 英語小學(xué)試卷模板
- 醫(yī)院投藥合同范本
- 汽車電子控制技術(shù)模考試題+答案
- N2級護(hù)理??荚囶}含答案
- 農(nóng)資化肥合同范本
- 中醫(yī)康復(fù)治療技術(shù)模擬考試題+參考答案
- 開荒保潔租房合同范本
- 改革開放以來河南城市文化體制的改革
- 突發(fā)公共衛(wèi)生事件應(yīng)急條例課件
- 建筑材料分類及明細(xì)圖片
- 三年級心理健康全冊課件
- 黃河流域生態(tài)保護(hù)與高質(zhì)量發(fā)展課件
- 工廠奠基儀式策劃書
- 人員能力矩陣圖
- 用戶需求(URS)編寫及管理規(guī)程
- 分班后第一次班會——起航剖析
- 牛羊定點屠宰廠項目可行性研究報告-甲乙丙資信
- 03SG520-1實腹式鋼吊車梁(中輕級工作制A1~A5_Q235鋼_跨度6.0m、7.5m、9.0m)
評論
0/150
提交評論