Re: [問題] PHP的讀txt檔問題

看板Web_Design作者 ( )時間20年前 (2004/12/05 16:17), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串1/1
※ 引述《iamstudent (java)》之銘言: : 我現在已經會讀取檔案,寫入檔案... : 但是這些方法似乎都是單方向的 : 只能從檔案頭往檔案尾 : 如果我想要這樣動作 : 讀到特定的值 : 然後可以拉回來 : 修改這個位置的字再繼續往下 : 更正確的說 : 我有沒有辦法對一個txt檔的指定某一行作修改? : 因為我不想用資料庫 : 如果可以做到這一點就可以省掉資料庫了 純文字檔要修改很麻煩。 一般有的做法是, 1. 讀出來到修改前位置放到 a.txt => 加入修改後的內容 => 讀剩下的內容 => 將 a.txt 改為新的檔案名稱。 2. 再來還可以用 fseek() 來做,但因為是文字檔,除非你格式固定,不然你抓不到你要 位移的長度。 所以一般人會把那些要修改的存成 binary 檔,但 php 不像 c 一樣有 struct ,所以 只能用 array 等方式來模擬。 有一個 serialize() 函式是在處理有關這方面的東西。 但如果真的只是文字檔,又要修改,不建議直接存成文字檔,除非你文字檔格式是固定的 或者你要使用上面說的第 1 種方法,不然在處理東西上,會麻煩很多。 但如果你的文字 檔量是很龐大的話,也不建議存成 binary 檔,因為這樣讀進來有點耗記憶體。 所以要 依照你的需求去變通了。 存成文字檔: 不管在新增/修改/刪除都蠻耗 IO 動作,但閱讀容易,也不用另外將二進位 轉成文字檔。 存成 binary 檔: 新增/修改/刪除 比較簡單,但對記憶體比較傷。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.119.199.112 ※ 編輯: kenshieh 來自: 140.119.199.112 (12/05 16:28)

140.113.123.227 12/06, , 1F
謝謝
140.113.123.227 12/06, 1F
文章代碼(AID): #11iiGs0z (Web_Design)
文章代碼(AID): #11iiGs0z (Web_Design)