PHP打開和關(guān)閉文件操作函數(shù)總結(jié)
在處理文件內(nèi)容之前,通常需要建立與文件資源的連接,即打開文件。同樣,結(jié)束該資源的操作后,應(yīng)當(dāng)關(guān)閉連接資源。所謂打開文件,實(shí)際是建立文件的各種有關(guān)信息,并使文件指針指向該文件,就可以發(fā)起輸入或輸出的實(shí)體聯(lián)系在一起,也就禁止再對該文件進(jìn)行操作。在PHP中可以通過標(biāo)準(zhǔn)函數(shù)fopen()建立與文件資源的連接,使用fclose()函數(shù)關(guān)閉通過fopen()函數(shù)打開的文件資源。
①函數(shù)fopen()
該函數(shù)用來打開一個(gè)文件,并在打開一個(gè)文件時(shí),還需要指定如果使用它。也就是以哪種文件模式打開文件資源。服務(wù)器上的操作系統(tǒng)文件必須知道要對打開的文件進(jìn)行什么操作。操作系統(tǒng)需要了解在打開這個(gè)文件之后,這個(gè)文件是否還允許其他的程序腳本再打開,還需要了解腳本的屬主用戶是否具有在這種方式下使用該文件的權(quán)限。該函數(shù)的原型如下所示:
resource fopen(string filename,string mode[,bool use_include_path[,resource zcontext]) //打開文件
第一個(gè)參數(shù)需要提供要被打開文件的URL。這個(gè)URL可以是腳本所在的服務(wù)器中的絕對路徑,也可以是相對路徑,還可以是網(wǎng)絡(luò)資源中的文件。第二個(gè)參數(shù)需要提供文件模式,文件模式可以告訴操作系統(tǒng)如何處理來自其他人或腳本的訪問請求,以及一種用來檢查你是否有權(quán)訪問這個(gè)特定文件的寫法。當(dāng)在打開文件時(shí)有三種選擇:
★打開一個(gè)文件為了只讀、只寫或者是讀和寫。
★如果要寫一個(gè)文件,可以覆蓋所有已有的文件內(nèi)容,或者需要將新數(shù)據(jù)追加到文件末尾。
★如果在一個(gè)區(qū)分二進(jìn)制文件和純文本文件的系統(tǒng)上寫一個(gè)文件,還必須指定采用的方式。
函數(shù)fopen()也支持以上三中房四海的組合,只需要在第二個(gè)參數(shù)中提供一個(gè)字符串,指定將對文件進(jìn)行的操作即可。在下表中列出了可以使用的文件模式及其意義。

第三個(gè)參數(shù)是可選的,如果資源位于本地文件系統(tǒng),PHP則認(rèn)為可以使用本地路徑或是相對路徑來訪問此資源。如果將這個(gè)參數(shù)設(shè)置為1,這樣就會使PHP考慮配置指令include_path中指定的路徑(在PHP的配置文件中設(shè)置)。
第四個(gè)參數(shù)也是可選的,fopen()函數(shù)允許文件名稱以協(xié)議名稱開始,例如“http://”,并且在一個(gè)遠(yuǎn)程位置打開該文件。通過設(shè)置這個(gè)參數(shù),還可以支持一些其他的協(xié)議。
如果fopen()函數(shù)成功地打開一個(gè)文件,該函數(shù)將返回一個(gè)指向這個(gè)文件的文件指針。對該文件進(jìn)行操作所使用的讀、寫以及其他的文件操作函數(shù),都要使用這個(gè)資源來訪問該文件。如果打開文件失敗,則返回FALSE。函數(shù)fopen()的是喲on個(gè)示例如下:
<?php
//使用絕對路徑打開file.txt文件,選擇只讀模式,并返回資源$handle
$handle = fopen("/home/rasmus/file.txt", "r");
//訪問文檔根目錄下的文件,也以只讀模式打開
$handle = fopen("$_SERVER['DOCUMENT_ROOT']/data/info.txt","r");
//在Windows平臺上,轉(zhuǎn)義文件路徑的每個(gè)反斜線,或者用斜線,以二進(jìn)制和只寫模式組合
$handle = fopen("C:\\data\\file.gif", "wb");
//使用相對路徑打開file.txt文件,選擇只讀模式,并返回資源$handle
$handle = fopen("../data/info.txt", "r");
//打開遠(yuǎn)程文件,使用HTTP協(xié)議只能以只讀的模式打開
$handle = fopen("http://www.example.com", "r");
//使用FTP協(xié)議打開遠(yuǎn)程文件,如果FTP服務(wù)器可寫,則可以以寫的模式打開
$handle = fopen("ftp://user:password@example.com", "w");
?>
②函數(shù)fclose()
資源類型屬于PHP的基本類型之一,一旦完成資源的處理,一定要將其關(guān)閉,否則可能會出現(xiàn)一些預(yù)料不到的錯(cuò)誤。函數(shù)fclose()就會撤銷fopen()打開的資源類型,成功時(shí)返回TRUE,否則返回FALSE。參數(shù)必須是使用fopen()或fsockopen()函數(shù)打開的已存的文件指針。在目錄操作中opendir()函數(shù)也是開啟一個(gè)資源,使用closedir()將其關(guān)閉。
相關(guān)文章
php上傳圖片客戶端和服務(wù)器端實(shí)現(xiàn)方法
這篇文章主要介紹了php上傳圖片客戶端和服務(wù)器端實(shí)現(xiàn)方法,涉及php操作文件的技巧,涉及圖片后綴驗(yàn)證、文件重命名等常用方法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03
PHP實(shí)現(xiàn)將base64編碼字符串轉(zhuǎn)換成圖片示例
這篇文章主要介紹了PHP實(shí)現(xiàn)將base64編碼字符串轉(zhuǎn)換成圖片,涉及php編碼轉(zhuǎn)換、文件讀寫等簡單處理技巧,需要的朋友可以參考下2018-06-06
php獲得客戶端瀏覽器名稱及版本的方法(基于ECShop函數(shù))
這篇文章主要介紹了php獲得客戶端瀏覽器名稱及版本的方法,基于ECShop函數(shù)get_user_browser實(shí)現(xiàn)該功能,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-12-12

