儲存與取出資料: 開啟檔案: 使用fopen()函式開啟檔案。 fopen()提供三種選項的組合。 $fp = fopen("$document_root/../orders/orders.txt",'w'); r = 開啟檔案來讀取,從檔案的開頭開始。r+ =開啟檔案來讀取與寫入,從檔案的開頭開始。 w = 打開檔案來寫入 w+ = 存在則刪除既有內容,不存在則建立它。 x = 謹慎寫入,如果檔案存在則不會被開啟,會傳回false與產生警告。w+ = 開啟檔案來寫入與讀取,從檔案的開頭開始。如果檔案存在他將不會被開啟。 a = 開啟檔案來附加寫入內容,從既有的內容結尾處開始,如果檔案不存在則試著建立它。 a+ = 開啟檔案來寫入與讀取,從既有的內容結尾處開始,如果檔案不存在則試著建立它。 b = 二進位:與其中一種模式一起使用。如果你的檔案系統會區分二進位與文字檔,應該優先使用這種模式。 t = 文字:與其中一種模式一起使用。這模式只能在windows系統中選擇。除非你已移植程式碼,要與b選項一起使用,否則不建議使用。 $fp = fopen("$document_root/../orders/orders.txt",'ab'); 第三個為選用參數,用於在Apache PHP MySQL中搜尋檔案用,使用時請將此參數改為true。 透過FTP或HTTP來開始檔案 開啟php.ini內的功能:allow_url_fopen 可以使用ftp://開頭的檔案。如果檔名開頭是http://他會開啟一個HTTP連結。 Unix會有檔案權限問題: 輸入以下指令來建立一個可供群組寫入的目錄,在裡面儲存訂單。 mkdir path/to/orders chgrp apache path/to/orders chmod 775 path/to/order 請注意檔案安全性問題,給予權限的檔案可供Web使用者寫入會變得非常危險。 寫入檔案: 使用fputs()與fwrite()來寫入。 fwrite()可接收三個參數:resource handle, string [, int length]而length為寫入的最大byte數,若指定最大byte數,超過大小則會停止寫入。你可以使用strlen()來取得字串長度。 將$outputstring裡面的字串寫入至$fp所指的檔案: fwrite($fp,$outputstring); 另一種替代fwrite的是file_put_contents()此種方式可不必使用fopen()與fwrite() 將data裡面的資料寫至名為filename的檔案中: int file_put_contents(string filename,mixed data[,int flags[,resource context]]); 關閉檔案: 檔案使用完畢可使用fclose()來關閉它。 fclose($fp);//關閉成功回傳true失敗回傳flase 讀取檔案: $fp = fopen("$document_root/../orders/orders.txt",'rb'); 如何得知讀取至結尾: if(feof($fp))或者利用迴圈寫入while(!feof($fp))... 一次讀取一行: fgets(),fgetss(),fgetcsv() $order = fgets($fp);//會持續讀取直到碰到\n換行字元為止。當你處理純文字檔案時,很適合用此函式。 fgetss()可進一步將包住字串的PHP與HTML標籤移除。避免惡意使用者製造安全問題。 讀取整個檔案:readfile(),fpassthru(),file(),file_get_contents() 讀取字元:fgetc() 讀取任意長度:fread() 使用其他的檔案函式 檢查檔案是否存在file_exists() 確定檔大小filesize() 刪除檔案unlink() 巡覽檔案內容rewind(),fseek(),ftell() 鎖定檔案flock()可避免兩個fopen同時操作一個檔案。