2011-05-12 53 views
3

在php中我打開一個文本文件並追加到它。不過,我需要在文件結束之前追加3個字符。 換句話說,我需要追加/寫入文件中的特定位置。PHP從特定位置追加到文件

任何人都可以幫忙嗎?

問候 Luben

+0

請向我們顯示您的代碼。並看看http://php.net/manual/fr/function.fseek.php – soju 2011-05-12 14:10:40

+3

對於每一個非法語在這裏說:http://php.net/fseek – KingCrunch 2011-05-12 14:26:21

回答

9

您需要打開要編輯的文件,尋找到所需的位置,然後寫入文件,如:

<?php 
    $file = fopen($filename, "c"); 
    fseek($file, -3, SEEK_END); 
    fwrite($file, "whatever you want to write"); 
    fclose($file); 
?> 

php.net - fseek doc

更多參考希望有所幫助。

+0

對不起,但你錯了!在我發佈之前我曾嘗試過,我應該提到這一點。如果用a或+打開文件,它將追加到最後,而不管fseek()或rewind()。閱讀您發佈的鏈接底部的註釋。另一件事,如果我使用W或W +它只是從一開始就開始。還有其他建議嗎? – Luben 2011-05-12 14:40:14

+0

文章的底部還指出,通過在'r +'中打開文件,您應該可以使用fseek() – 2011-05-12 14:47:31

+0

@Luben您是對的,我沒有正確閱讀它。正確的模式是「c」或「c +」(或者你可以使用「r +」,正如@Neil Aitken所說:)),如[鏈接]中所述(http://cz.php.net/manual/en/ function.fopen.php)我編輯了反應來反映它。 – Erbureth 2011-05-12 15:12:15

1

如果它是一個簡短的文本文件,你只能這樣做一次,就可以在內容中讀取(用fread()),只有高達從端3個字符使用字符串保存它,然後將新內容附加到該內容並寫入。

但正如我所說如果這是一個常規的事情和/或與大文件,這不是最好的辦法。我會想一想。

希望這有助於

+0

謝謝亞歷克斯B! 我沒有想到,它可能是一個解決方案。但是恐怕這些文件可能會變得很大......說1000個字符。如果我找不到其他東西,我會創建一個虛擬文件並做一些測試。 – Luben 2011-05-12 14:25:01

+0

@Luben:1000個字符大約1kB(以ASCII碼1個字符= 1字節)。它的安全可以完全讀入內存。 – KingCrunch 2011-05-12 14:29:15

+0

謝謝國王!理想情況下,我想要使用上面提到的Erbureth的方法,但不幸的是這並不起作用。我會環顧四周,如果不是明天,我會照你說的去做。 – Luben 2011-05-12 14:47:43