看板 PHP 關於我們 聯絡資訊
※ 引述《wishmeteor (人生有夢 築夢踏實)》之銘言: : 想請問板上的高手們~ : 想要把一個字串寫入至一個txt檔 : 查了函數 int fwrite(int fp, string string, int [length]) : 說明如下: : 本函式將字串 string 寫入檔案資料流的指標 fp 上。若有指定長度 length,則會寫入 : 指定長度字串,或是寫到字串結束。值得注意的是若指定了長度,則在 PHP 環境設定值 : magic_quotes_runtime 的設定將被忽略,同時字串中的斜線不會被刪除 : 所以就寫了: : $string = "欲寫入之內容"; : $file_name = "\result.txt"; : //將結果寫入檔案 : fwrite ($file_name, $string); : //並將結果顯示於網頁上 : 可是出來的結果: : Warning: fwrite(): supplied argument is not a valid stream resource in : C:\AppServ\www\test.php on line 31 : 看了這個意思 應該是 $fp有問題 : 所以去找了別人的範例來看: : <? : $myFile = 'just.txt'; : $fp = fopen($myFile, 'a'); : echo "$fp"; : fwrite($fp, "your content 1\n"); : fclose($fp); : ?> : 目前查到的資料 fwrite都是搭配fopen使用 : 也就是寫入原讀入檔案 但是這不是我需要的... 如果你用的是PHP5,使用file_put_contents就好了 http://tw.php.net/file_put_contents 注意這個函數php4沒有 <?php $string = "欲寫入之內容"; $file_name = "\result.txt"; //將結果寫入檔案 file_put_contents ($file_name, $string); /* 但注意這樣寫,如果result.txt存在他會覆蓋掉所有result.txt原有內容! 如果要使用"附加在最後"的話 file_put_contents ($file_name, $string, FILE_APPEND);*/ ?> 不過fopen這樣寫沒有錯喔 http://tw.php.net/fopen resource fopen ( string $filename , string $mode [, bool $use_include_path [, resource $context ]] ) 注意mode的部份 'a'是如果現有檔案存在,新東西寫於最後 'w'是如果現有檔案存在,清空所有原有內容後寫新東西 如果擔心寫到現有的textfile,請搭配file_exists : 所以想弄懂 $fp 但印出來的是: Resource id #3 : 不知道是什麼意思... : ================================================================ : 所以想請問一下 : 一、 : 1.要怎麼把某個字串寫入至同一個資料夾呢? : (該資料夾下原本沒有這個檔案 要寫入一個新的file中) : 2.$fp該填什麼呢? fopen傳回的resource(might be the only way!) : 二、那個$fp是什麼東西呢.. 我查了一下它叫做file handle : 但是印出來的record id#3是什麼意思還是百思不得其解... $fp是一種File Pointer,簡單來講(很不嚴謹來說) fopen之後PHP會試著打開檔案,然後產生出一個File Pointer「指向」對檔案的操作 然後如果成功的話,在fwrite/fread/fgets指定File Pointer就可以對這個檔案作操作 當然你在fopen的mode中不允許的操作也無法被使用囉 : 謝謝回答 :) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.30.84 ※ 編輯: ybite 來自: 140.112.30.84 (04/13 17:46)
wishmeteor:謝謝~ 回答的很仔細 :) 04/13 21:27
kalasiya:也可以試著用fput()將字串寫入檔案 04/15 10:41