Board logo

標題: 6-3 檔案處理函數 [打印本頁]

作者: 小誌    時間: 2011-4-19 18:21     標題: 6-3 檔案處理函數

6-3   檔案處理函數
fopen()函數允許PHP程式存取網頁伺服器上的檔案,實務上應用大部份以文字檔為主。

fopen() 函數格式
  1. resource fopen ( string filename, string mode [, int use_include_path [, resource zcontext]])
複製代碼
fopen()函數只負責開啟檔案,若想讀取檔案內容,則必須配合fread()函數一起使用,若fopen()函數正確執行則回傳值為1,反之回傳值為0。語法如下所示:
  1. $f=fopen(“檔案路徑與名稱”,”開啟的模式”);
複製代碼
「開啟的模式」有下列數種:

設定值

說明

a

檔案開啟成附加寫入模式檔案內內容保留,資料會從檔案最後面寫入,若檔案不存在則自動建立

a+

檔案開啟成附加讀取模式檔案內內容保留,資料會從檔案最後面寫入,若檔案不存在則自動建立

r

檔案開啟成唯讀模式

r+

檔案開啟成可讀可寫模式,資料會從檔案最前面寫入

w

開啟成唯寫的檔案,原檔案內容會被清除,若檔案不存在則自動建立

w+

檔案開啟成可讀可寫模式,原檔案內容會被清除,若檔案不存在則自動建立



例如:
  1. <?
  2. $myfile=fopen("test.txt","r"); //註1
  3. $myfile=fopen("count.txt","a"); //註2
  4. $myfile=fopen("c:\\myfile\\test.txt","r");//註1
  5. $myfile=fopen("mem.txt","w");//註2
  6. ?>
複製代碼

作者: 小誌    時間: 2011-4-19 18:27

註1:
當以「r」模式開啟檔案時,該檔案必須是已建立完成,不可是不存在的檔案,否則會發生「failed to create stream: No such file or directory」的錯誤,如下圖:
[attach]5568[/attach]
圖6-17  錯誤,欲開啟不存在的檔案。

註2:
若您希望開啟的檔案不存在時,能夠自動建立該檔案,請特別注意目錄的使用權限!預設是不允許「寫入」動作(不能建立檔案,改變檔案內容),因此會有「failed to create stream: Permission denied」的錯誤。
[attach]5569[/attach]
圖6-18  錯誤,不允許建立檔案。

在Window 2000中,您應該在自動建立檔案所在的目錄圖示上按下滑鼠右鍵,選取「內容」->點選「安全」頁籤->「名稱」欄位中選取『Users』項目->『權限』欄位裡,把「修改」、「讀取」與「寫入」這三個項目的『允許』核取起來:
[attach]5570[/attach]
圖6-19 安全性設定。

經過以上設定後,您就可以在指定的目錄下,建立檔案,修改檔案,與讀取檔案資料了!若「名稱」欄位中沒有『Users』項目則可按下「新增」按鈕來增加使用者項目:
[attach]5571[/attach]
圖6-20  增加使用者。

在Window XP中,「內容」項目中預設是沒有「安全性」這個頁籤的,在設定目錄權限時則需先將「安全性」頁籤變出來。
點選「我的電腦」>工具 >資料夾選項:
[attach]5572[/attach]
圖6-21  資料夾選項設定。

在「資料夾選項」視窗中選取『檢視』頁籤 >找到「使用簡易檔案共用(建議使用)」這個項目,並取消這個項目的核取,這樣一來,資料夾的「內容」視窗中就有「安全性」這個頁籤了:
[attach]5573[/attach]
圖6-22  取消「使用簡易檔案共用(建議使用)」項目。

在「安全性」頁籤的『群組或使用者名稱』欄位中選取『Users』項目 >『Users的權限』欄位裡,把「修改」、「讀取」與「寫入」這三個項目的『允許』核取起來:
[attach]5574[/attach]
圖6-23  取消「使用簡易檔案共用(建議使用)」項目。

經過以上設定後,您就可以在window XP作業系統中,於指定的目錄下,建立檔案,修改檔案,與讀取檔案資料了。
fopen()函數並不限定開啟本地端檔案,亦可開啟遠端檔案,例如:
  1. <?
  2. $myfile=fopen("http://www.twbts.com/test.txt","r");
  3. $hisfile=fopen("http://www.twbts.com/","w+");  //註
  4. $yourfile=fopen("ftp://user:[email protected]/","r");
  5. ?>
複製代碼
:以HTTP 網址所指定的檔案只能開啟成唯讀模式,如果開啟成寫入模式則會造成錯誤。




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)