程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> PHP打開和關閉文件操作函數總結

PHP打開和關閉文件操作函數總結

編輯:PHP綜合

在處理文件內容之前,通常需要建立與文件資源的連接,即打開文件。同樣,結束該資源的操作後,應當關閉連接資源。所謂打開文件,實際是建立文件的各種有關信息,並使文件指針指向該文件,就可以發起輸入或輸出的實體聯系在一起,也就禁止再對該文件進行操作。在PHP中可以通過標准函數fopen()建立與文件資源的連接,使用fclose()函數關閉通過fopen()函數打開的文件資源。

①函數fopen()

該函數用來打開一個文件,並在打開一個文件時,還需要指定如果使用它。也就是以哪種文件模式打開文件資源。服務器上的操作系統文件必須知道要對打開的文件進行什麼操作。操作系統需要了解在打開這個文件之後,這個文件是否還允許其他的程序腳本再打開,還需要了解腳本的屬主用戶是否具有在這種方式下使用該文件的權限。該函數的原型如下所示:
復制代碼 代碼如下:
resource fopen(string filename,string mode[,bool use_include_path[,resource zcontext])            //打開文件

第一個參數需要提供要被打開文件的URL。這個URL可以是腳本所在的服務器中的絕對路徑,也可以是相對路徑,還可以是網絡資源中的文件。第二個參數需要提供文件模式,文件模式可以告訴操作系統如何處理來自其他人或腳本的訪問請求,以及一種用來檢查你是否有權訪問這個特定文件的寫法。當在打開文件時有三種選擇:

★打開一個文件為了只讀、只寫或者是讀和寫。
★如果要寫一個文件,可以覆蓋所有已有的文件內容,或者需要將新數據追加到文件末尾。
★如果在一個區分二進制文件和純文本文件的系統上寫一個文件,還必須指定采用的方式。

函數fopen()也支持以上三中房四海的組合,只需要在第二個參數中提供一個字符串,指定將對文件進行的操作即可。在下表中列出了可以使用的文件模式及其意義。

第三個參數是可選的,如果資源位於本地文件系統,PHP則認為可以使用本地路徑或是相對路徑來訪問此資源。如果將這個參數設置為1,這樣就會使PHP考慮配置指令include_path中指定的路徑(在PHP的配置文件中設置)。

第四個參數也是可選的,fopen()函數允許文件名稱以協議名稱開始,例如“http://”,並且在一個遠程位置打開該文件。通過設置這個參數,還可以支持一些其他的協議。

如果fopen()函數成功地打開一個文件,該函數將返回一個指向這個文件的文件指針。對該文件進行操作所使用的讀、寫以及其他的文件操作函數,都要使用這個資源來訪問該文件。如果打開文件失敗,則返回FALSE。函數fopen()的是喲on個示例如下:
復制代碼 代碼如下:
<?php
//使用絕對路徑打開file.txt文件,選擇只讀模式,並返回資源$handle
$handle = fopen("/home/rasmus/file.txt", "r");
//訪問文檔根目錄下的文件,也以只讀模式打開
$handle = fopen("$_SERVER['DOCUMENT_ROOT']/data/info.txt","r");
//在Windows平台上,轉義文件路徑的每個反斜線,或者用斜線,以二進制和只寫模式組合
$handle = fopen("C:\\data\\file.gif", "wb");
//使用相對路徑打開file.txt文件,選擇只讀模式,並返回資源$handle
$handle = fopen("../data/info.txt", "r");
//打開遠程文件,使用HTTP協議只能以只讀的模式打開
$handle = fopen("http://www.example.com", "r");
//使用FTP協議打開遠程文件,如果FTP服務器可寫,則可以以寫的模式打開
$handle = fopen("ftp://user:[email protected]", "w");
?>

②函數fclose()

資源類型屬於PHP的基本類型之一,一旦完成資源的處理,一定要將其關閉,否則可能會出現一些預料不到的錯誤。函數fclose()就會撤銷fopen()打開的資源類型,成功時返回TRUE,否則返回FALSE。參數必須是使用fopen()或fsockopen()函數打開的已存的文件指針。在目錄操作中opendir()函數也是開啟一個資源,使用closedir()將其關閉。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved