簡體   English   中英

如何用PHP中的新內容覆蓋文件內容?

[英]How can I overwrite file contents with new content in PHP?

我試圖使用fopen,但我只設法將內容附加到文件末尾。 是否可以用PHP中的新內容覆蓋所有內容?

使用file_put_contents()

file_put_contents('file.txt', 'bar');
echo file_get_contents('file.txt'); // bar
file_put_contents('file.txt', 'foo');
echo file_get_contents('file.txt'); // foo

或者,如果你堅持使用fopen()你可以使用ww+模式:

'w'僅供寫作; 將文件指針放在文件的開頭,並將文件截斷為零長度。 如果該文件不存在,請嘗試創建它。

'w +'開放閱讀和寫作; 將文件指針放在文件的開頭,並將文件截斷為零長度。 如果該文件不存在,請嘗試創建它。

$fname = "database.php";
$fhandle = fopen($fname,"r");
$content = fread($fhandle,filesize($fname));
$content = str_replace("192.168.1.198", "localhost", $content);

$fhandle = fopen($fname,"w");
fwrite($fhandle,$content);
fclose($fhandle);

我首選的方法是使用fopen,fwrite和fclose [它會花費更少的CPU]

$f=fopen('myfile.txt','w');
fwrite($f,'new content');
fclose($f);

對於那些使用file_put_contents的人的警告

它會影響很多性能,例如[在相同的類/情況下] file_get_contents :如果你有一個BIG FILE,它會一次性讀取整個內容,並且該操作可能需要很長的等待時間

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM