Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich bestimmte Zeilen in einer Textdatei mit PHP ersetzen?

Wie kann ich bestimmte Zeilen in einer Textdatei mit PHP ersetzen?

Linda Hamilton
Linda HamiltonOriginal
2024-11-13 02:42:021079Durchsuche

How Can I Replace Specific Lines in a Text File with PHP?

Bestimmte Zeilen in einer Textdatei mit PHP ersetzen

Innerhalb einer Textdatei ist das selektive Ersetzen von Zeilen basierend auf dem Vorhandensein eines bestimmten Wortes möglich eine allgemeine Anforderung. In dieser Hinsicht bietet PHP mehrere Ansätze, um diese Aufgabe zu erfüllen.

Verwenden von Array-Funktionen für kleinere Dateien (in den Speicher passen)

Für Textdateien, die in den Speicher passen, Der folgende Ansatz kann verwendet werden:

$data = file('myfile'); // Array of lines
function replace_a_line($data) {
    return (stristr($data, 'certain word')) ? "replacement line!\n" : $data;
}
$data = array_map('replace_a_line', $data);
file_put_contents('myfile', $data);

Lambda-Funktionen in PHP-Versionen > 5.3.0 ermöglichen eine prägnante Version:

$data = array_map(function($data) {
    return (stristr($data, 'certain word')) ? "replacement line\n" : $data;
}, $data);

Für größere Dateien (speicherintensiv)

Bei größeren Dateien iteriert der folgende Ansatz Zeile für Zeile. Zeile, ohne die gesamte Datei in den Speicher zu laden:

$reading = fopen('myfile', 'r');
$writing = fopen('myfile.tmp', 'w');
$replaced = false;
while (!feof($reading)) {
    $line = fgets($reading);
    if (stristr($line, 'certain word')) {
        $line = "replacement line!\n";
        $replaced = true;
    }
    fputs($writing, $line);
}
fclose($reading); fclose($writing);
if ($replaced) rename('myfile.tmp', 'myfile');
else unlink('myfile.tmp');

Durch die Implementierung dieser Techniken können Sie bestimmte Zeilen in einer Textdatei effektiv ersetzen basierend auf einer Wortübereinstimmung.

Das obige ist der detaillierte Inhalt vonWie kann ich bestimmte Zeilen in einer Textdatei mit PHP ersetzen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn