Как я могу переписать содержимое файла новым контентом в 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() вы можете использовать режимы w или w+ :

'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); 

В качестве альтернативы, если у вас есть полный контроль над вашим сервером, почему бы не «гарантировать» операцию по ее настройке, удалив файл раньше?

 $wait=exec('rm -r -f myfile.txt'); file_put_contents('myfile.txt','new content'); 

$ Wait здесь – просто удерживать команду remove, пока она не будет выполнена.