PHP搜索并替换多个文件,多个实例

时间:2015-06-12 14:24:46

标签: php str-replace

我正在尝试编写一个php脚本,它将更改多个文件中的多个单词/短语实例

我有一个收集变量的表单

这是我的剧本

$introname= $_POST['introname'] ;
$introid= $_POST['introid'] ;
$officeid= $_POST['officeid'] ;
$introname= $_POST['introname'] ;
$office= $_POST['office'] ;
$email= $_POST['email'] ;


$q="intrologin.php";
$f=fopen($q,'r');
$c=fread($f,10000);
$final = str_replace("jojointroname", $_POST['introname'], $c);
$final = str_replace("jojointroid", $_POST['introid'], $c);
$final = str_replace("jojoofficeid", $_POST['officeid'], $c);
$final = str_replace("jojooffice", $_POST['office'], $c);
fclose($f);
$f=fopen($q,'w');
fwrite($f,$final);
fclose($f);


$p="introprocessing.php";
$f=fopen($p,'r');
$c=fread($f,10000);
$final = str_replace("jojoemail", $_POST['email'], $c);
fclose($f);
$f=fopen($p,'w');
fwrite($f,$final);
fclose($f);

当我运行它时,脚本的第二部分运行正常并更改了电子邮件,但脚本的第一部分只更改了办公室'而不是前面的3个变量。

我是否需要为每次更改创建一个单独的组,或者我错过了哪些内容?

1 个答案:

答案 0 :(得分:0)

这是因为每次调用str_replace都会给它原始字符串$c,因此当您将其分配给$final时,它会覆盖之前的更改。这应该有效:

$final = str_replace("jojointroname", $_POST['introname'], $c);
$final = str_replace("jojointroid", $_POST['introid'], $final);
$final = str_replace("jojoofficeid", $_POST['officeid'], $final);
$final = str_replace("jojooffice", $_POST['office'], $final);
相关问题