这是前一篇文章的延续。
我需要在配置文件(.cfg)中更改一些参数(字符串)
我遵循摩恩的编码风格,并成功取代了我想替换的字符串。
摩恩的代码:
$url = 'htp://localhost/mydocs/doc.pdf';
$file='config.cfg';
$file_data = explode("\r\n",file_get_contents($file));
foreach($file_data as $line) {
list($key, $value) = explode('=', $line);
if($key == "resource") {
$res_data[] = "$key=$url\n";
continue;
}
$res_data[] = $line;
}
file_put_contents("config.cfg", join("\r\n",$res_data));但另一方面,我需要替换不是一个字符串,而是像资源,名称,文件等多个字符串。我尝试使用switch语句并查找所有要替换的字符串。我可以将它们全部替换,但问题在于我使用原始参数创建了已更改字符串的副本。
foreach($ file_data as $ line){
list($ key,$ value)= explode('=',$ line);
switch($key){
case "resource":
$res_data[] = "$key=$url";
break;
case "name":
$res_data[] = "$key=$name";
break;
case "file":
$res_data[] = "$key=$file";
break;
}
$res_data[] = $line;
}
file_put_contents("config.cfg", join("\r\n",$res_data));例如,如果参数的值
resource=<?AJIZT ?>\srcpdf\srcdef.xml
name=timmy
file=timmy.txt我能够改变这些参数并期待输出
resource=htp://localhost/mydocs/doc.pdf
name=john
file=john.txt但我的输出如下所示:
resource=htp://localhost/mydocs/doc.pdf
resource=<?AJIZT ?>\srcpdf\srcdef.xml
name=john
name=timmy
file=john.txt
file=timmy.txt我如何删除重复项?
谢谢