it-swarm.com.de

Wie kann ich Dateiinhalte mit neuen Inhalten in PHP überschreiben?

Ich habe versucht, fopen zu verwenden, aber es gelang mir nur, Inhalte an das Ende der Datei anzuhängen. Ist es möglich, alle Inhalte mit neuen Inhalten in PHP zu überschreiben?

35
newbie

Verwenden Sie 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

Wenn Sie sich jedoch nicht mit fopen() beschäftigen, können Sie die Modi w oder w+ verwenden:

'w' Nur zum Schreiben geöffnet; Setzen Sie den Dateizeiger an den Anfang der Datei und verkürzen Sie die Datei auf Null. Wenn die Datei nicht vorhanden ist, versuchen Sie, sie zu erstellen.

'w +' Zum Lesen und Schreiben öffnen; Setzen Sie den Dateizeiger an den Anfang der Datei und verkürzen Sie die Datei auf Null. Wenn die Datei nicht vorhanden ist, versuchen Sie, sie zu erstellen.

65
Mike B
$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);
1
Ram Pukar

MEINE BEVORZUGTE METHODE verwendet fopen, fwrite und fclose [es kostet weniger CPU]

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

Warnung für diejenigen, die file_put_contents verwenden

Dies wirkt sich sehr auf die Leistung aus, zum Beispiel [in derselben Klasse/Situation] file_get_contents : Auch wenn Sie eine GROSSE DATEI haben, wird der gesamte Inhalt auf einmal gelesen und die Operation kann lange dauern Wartezeit

0
PYK