我正在尝试编写一个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个变量。
我是否需要为每次更改创建一个单独的组,或者我错过了哪些内容?
答案 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);