如何使用php修改文本文件的子串?

时间:2015-01-13 11:47:25

标签: php

这是文本文件的数据(Presidents.txt):

George Washington 
John Adams
George Jefferson
James Madison

我想将 George [3rd line]替换为 Thomas ,而不删除或替换文本文件的所有数据。我想从第三行删除或替换 George

这是我正在尝试的代码:

$file = fopen("Presidents.txt","r+");
fwrite($file,'Thomas');

但输出:

Thomas Washington 
John Adams
George Jefferson
James Madison

但我想要的输出是:

George Washington 
John Adams
Thomas Jefferson
James Madison

有什么办法吗?

2 个答案:

答案 0 :(得分:1)

这应该适合你:

<?php

    $file= "Presidents.txt";
    $lines = file($file);

    $lines[2] = str_replace("George", "Thomas", $lines[2]);
    file_put_contents($file, implode("\n", $lines) );

?>

答案 1 :(得分:1)

你在想这个吗?

$handle = fopen("Presidents.txt", "r");
$file="";
if ($handle) {
    while (($line = fgets($handle)) !== false) {
        echo $line;
        if($line=="George Jefferson\r\n") {
            $line="Thomas Jefferson\r\n";
        }
    $file .= $line;
    }
}
fclose($handle);
$handle = fopen("Presidents.txt", "w+");
fwrite($handle,$file);
fclose($handle);