使用PHP 取代文字檔案中的特定行
在文字檔案中,根據特定單字的存在選擇性地取代行是一個共同的要求。在這方面,PHP 提供了幾種方法來完成此任務。
對較小的文件使用數組函數(適合內存)
對於適合內存的文本文件,可以採用以下方法:
$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);
PHP 版本中的Lambda 函數> 5.3.0允許簡潔的版本:
$data = array_map(function($data) { return (stristr($data, 'certain word')) ? "replacement line\n" : $data; }, $data);
對於較大的文件(內存密集型)
對於較大的文件,以下方法逐行迭代-行而不將整個檔案載入記憶體:
$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');
透過實作這些技術,您可以根據單字匹配有效地替換文字檔案中的特定行。
以上是如何使用 PHP 替換文字檔案中的特定行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!