PHP打開和關閉文件操作函數(shù)總結(jié)
在處理文件內(nèi)容之前,通常需要建立與文件資源的連接,即打開文件。同樣,結(jié)束該資源的操作后,應當關閉連接資源。所謂打開文件,實際是建立文件的各種有關信息,并使文件指針指向該文件,就可以發(fā)起輸入或輸出的實體聯(lián)系在一起,也就禁止再對該文件進行操作。在PHP中可以通過標準函數(shù)fopen()建立與文件資源的連接,使用fclose()函數(shù)關閉通過fopen()函數(shù)打開的文件資源。
①函數(shù)fopen()
該函數(shù)用來打開一個文件,并在打開一個文件時,還需要指定如果使用它。也就是以哪種文件模式打開文件資源。服務器上的操作系統(tǒng)文件必須知道要對打開的文件進行什么操作。操作系統(tǒng)需要了解在打開這個文件之后,這個文件是否還允許其他的程序腳本再打開,還需要了解腳本的屬主用戶是否具有在這種方式下使用該文件的權(quán)限。該函數(shù)的原型如下所示:
resource fopen(string filename,string mode[,bool use_include_path[,resource zcontext]) //打開文件
第一個參數(shù)需要提供要被打開文件的URL。這個URL可以是腳本所在的服務器中的絕對路徑,也可以是相對路徑,還可以是網(wǎng)絡資源中的文件。第二個參數(shù)需要提供文件模式,文件模式可以告訴操作系統(tǒng)如何處理來自其他人或腳本的訪問請求,以及一種用來檢查你是否有權(quán)訪問這個特定文件的寫法。當在打開文件時有三種選擇:
★打開一個文件為了只讀、只寫或者是讀和寫。
★如果要寫一個文件,可以覆蓋所有已有的文件內(nèi)容,或者需要將新數(shù)據(jù)追加到文件末尾。
★如果在一個區(qū)分二進制文件和純文本文件的系統(tǒng)上寫一個文件,還必須指定采用的方式。
函數(shù)fopen()也支持以上三中房四海的組合,只需要在第二個參數(shù)中提供一個字符串,指定將對文件進行的操作即可。在下表中列出了可以使用的文件模式及其意義。
第三個參數(shù)是可選的,如果資源位于本地文件系統(tǒng),PHP則認為可以使用本地路徑或是相對路徑來訪問此資源。如果將這個參數(shù)設置為1,這樣就會使PHP考慮配置指令include_path中指定的路徑(在PHP的配置文件中設置)。
第四個參數(shù)也是可選的,fopen()函數(shù)允許文件名稱以協(xié)議名稱開始,例如“http://”,并且在一個遠程位置打開該文件。通過設置這個參數(shù),還可以支持一些其他的協(xié)議。
如果fopen()函數(shù)成功地打開一個文件,該函數(shù)將返回一個指向這個文件的文件指針。對該文件進行操作所使用的讀、寫以及其他的文件操作函數(shù),都要使用這個資源來訪問該文件。如果打開文件失敗,則返回FALSE。函數(shù)fopen()的是喲on個示例如下:
<?php
//使用絕對路徑打開file.txt文件,選擇只讀模式,并返回資源$handle
$handle = fopen("/home/rasmus/file.txt", "r");
//訪問文檔根目錄下的文件,也以只讀模式打開
$handle = fopen("$_SERVER['DOCUMENT_ROOT']/data/info.txt","r");
//在Windows平臺上,轉(zhuǎn)義文件路徑的每個反斜線,或者用斜線,以二進制和只寫模式組合
$handle = fopen("C:\\data\\file.gif", "wb");
//使用相對路徑打開file.txt文件,選擇只讀模式,并返回資源$handle
$handle = fopen("../data/info.txt", "r");
//打開遠程文件,使用HTTP協(xié)議只能以只讀的模式打開
$handle = fopen("http://www.example.com", "r");
//使用FTP協(xié)議打開遠程文件,如果FTP服務器可寫,則可以以寫的模式打開
$handle = fopen("ftp://user:password@example.com", "w");
?>
②函數(shù)fclose()
資源類型屬于PHP的基本類型之一,一旦完成資源的處理,一定要將其關閉,否則可能會出現(xiàn)一些預料不到的錯誤。函數(shù)fclose()就會撤銷fopen()打開的資源類型,成功時返回TRUE,否則返回FALSE。參數(shù)必須是使用fopen()或fsockopen()函數(shù)打開的已存的文件指針。在目錄操作中opendir()函數(shù)也是開啟一個資源,使用closedir()將其關閉。
相關文章
PHP Post獲取不到非表單數(shù)據(jù)的問題解決辦法
這篇文章主要介紹了PHP Post獲取不到非表單數(shù)據(jù)的問題的解決辦法以及代碼分享,需要的朋友參考下。2018-02-02php中print(),print_r(),echo()的區(qū)別詳解
本文介紹了php函數(shù)print(),print_r(),echo()的區(qū)別,這里推薦給大家,需要的朋友可以參考下2014-12-12PHP7創(chuàng)建COOKIE和銷毀COOKIE的實例方法
在本篇文章里小編給大家整理的是關于PHP7創(chuàng)建COOKIE和銷毀COOKIE的實例方法,有需要的朋友們可以參考下。2020-02-02PHP swoole和redis異步任務實現(xiàn)方法分析
這篇文章主要介紹了PHP swoole和redis異步任務實現(xiàn)方法,結(jié)合具體實例形式對比分析了swoole和redis異步任務具體實現(xiàn)方法及區(qū)別,需要的朋友可以參考下2019-08-08php rmdir使用遞歸函數(shù)刪除非空目錄實例詳解
我們大家都知道,php rmdir()函數(shù)用于刪除空目錄,但如果要刪除非空目錄,我們必須將非空目錄中的文件或子目錄刪除,本文章向大家介紹php如何使用遞歸函數(shù)刪除非空目錄,需要的朋友可以參考一下2016-10-10