2 回答
TA贡献1827条经验 获得超8个赞
这是一个快速的方法 if$find = "Hello";和$repl = "Changed";:
$result = preg_replace("/\[Line (\d+\].*?$find.*)/", "[$repl $1", file("lines.html"));
file_put_contents("lines.html", $result);
匹配[Line并捕获一位或多位()数字\d+
然后是任何东西.*?,然后是$find字符串,然后是任何.*捕获所有内容的东西
替换为[ $repl和捕获的内容$1
TA贡献1865条经验 获得超7个赞
要更改任何内容,您必须使用现有行和新更改的行编写一个新文件。这是一个简单的例子
// create a new output file
$out = fopen('test2.txt', 'w');
$input = file("lines.html");
$find = "Hello";
foreach($input as $key => $line){
$tmp = $line;
if(stristr($line, $find)){
$tmp = str_replace('[Line', '[Changed', $line);
// or if `[Line` can appear more than once in the line
//$tmp = substr_replace($line, '[Changed', 0, 5);
}
fwrite($out, $tmp);
}
fclose($out);
结果
[Changed 1] Hello
[Line 2] World
[Changed 3] Hello World
- 2 回答
- 0 关注
- 113 浏览
添加回答
举报