查找并替换文件

ArK*_*ArK 21 php replace

我想用文本文件中的另一个字符串替换某些字符串(例如:\nHwith ,H).有没有办法使用PHP?

Jos*_*osh 47

您可以使用file_get_contents()读取整个文件,执行str_replace(),然后使用file_put_contents()将其输出.

示例代码:

<?php

$path_to_file = 'path/to/the/file';
$file_contents = file_get_contents($path_to_file);
$file_contents = str_replace("\nH",",H",$file_contents);
file_put_contents($path_to_file,$file_contents);

?>
Run Code Online (Sandbox Code Playgroud)


Gum*_*mbo 13

有几个函数可以读写文件.

您可以阅读文件的内容file_get_contents,执行替换str_replace并将修改后的数据放回file_put_contents:

file_put_contents($file, str_replace("\nH", "H", file_get_contents($file)));
Run Code Online (Sandbox Code Playgroud)

  • 现在的问题是:你的单线程比我的三线版更快/更有效吗?;-) (3认同)
  • @Paul与读取,替换和写入操作相比,优势可以忽略不计. (2认同)
  • 是的,@ Gumbo,因此我宁愿追求更好的可读性=>更好的维护. (2认同)

mid*_*dus 9

如果你在Unix机器上,你也可以通过php的程序执行函数使用sed.

因此,您不必通过php管道所有文件的内容,并且可以使用正则表达式.可能会更快.

如果您没有阅读联机帮助页,可以在维基百科上找到概述.

  • 如果它是一个大文件,这实际上是我要去的路线 - 它可能比将整个事物读入PHP变量并执行PHP str_replace()更有效率 (3认同)
  • 如果允许php在服务器上执行shell命令,则会打开一个安全漏洞.如果您对服务器和PHP的安全性有所了解,我只会使用它.否则,您的服务器将面临风险. (2认同)