fopen
(PHP3 , PHP4)
fopen --- 開啟檔案或URL
語法 : int fopen (string filename, string mode [, int use_include_path])
說明 :
如果filename是以"http://"開始的,則HTTP1.0開啟連結到指定的伺服器,而且檔案指標指到傳回的文件的起點。一個'host:'與請求一起送出,是為了處理name-based虛擬主機。
無法處理HTTP轉向(redirects),因此必須包含延伸的斜線(slashes)在目錄上。
如果filename是以"ftp://"開始的,則ftp開啟連結到指定的伺服器,而且傳回所請求檔案的指標,如果伺服器並不提供被動模式ftp(passive mode ftp)時,這將會失敗。你可以經由ftp開啟檔案來讀或寫(兩者不能同時)。
如果filename是"php://stdin","php://stdout","php://stderr"其中之一時,將會開啟stdio資料流(stream)。這是在PHP 3.0.13中引見的,在先前的版本中,像是"/dev/stdin" 或 "/dev/fd/0"的檔案名稱,必須用來存取stdio資料流。
如果filename不是上述的樣式,則會從檔案系統開啟檔案,而且傳回檔案指標。
如果開啟失敗,則會傳回false。
mode可以是下列任何一個 :
' r ' -- 開啟檔案成為唯讀,檔案指標指到檔案的開始處
' r+ ' -- 開啟檔案成為讀與寫,檔案指標指到檔案的開始處
' w ' -- 開啟檔案成為只有寫入,檔案指標指到檔案的開始處並且將原本的檔案
內容設為0長度,即刪除原來的資料,若檔案不存在則試著去建立新檔
' w+ ' -- 開啟檔案成為讀與寫,檔案指標指到檔案的開始處並且將原本的檔案內
容設為0長度,即刪除原來的資料,若檔案不存在則試著建立新檔
' a ' -- 開啟檔案成為只有寫入,檔案指標指到檔案的最後處,若檔案不存在則試
著建立新檔
' a+ ' -- 開啟檔案為讀與寫,檔案指標指到檔案的最後處,若檔案不存在則試著
建立新檔
mode可以包含字母'b',這只有在二進制和文字檔之間有差異的系統才有用(例如在Unix它是無效的),如果不需要,它將會被忽略。
如果你想要在include_path中搜尋檔案,你可以使用第三個選項並將它設為"1"。
Example :
<?php
$fp = fopen ("/home/rasmus/file.txt", "r");
$fp = fopen ("/home/rasmus/file.gif", "wb");
$fp = fopen ("http://www.php.net/", "r");
$fp = fopen ("ftp://user:password@example.com/", "w");
?>
如果你在讀與寫檔案有問題,而且你是使用PHP的伺服器模組時,記得確認你所使用的檔案與目錄是伺服器程序(process)可利用的。
在Windows平台,檔案的路徑必須小心的使用來逃脫任何的反斜線( \ ),或是使用斜線( / )。
Example :
<?php
$fp = fopen ("c:\\data\\info.txt", "r");
?>
參考 : fclose( ) fsockopen( ) popen( )