это продолжение предыдущего поста.Мне нужно изменить некоторые параметры (строки) в моем конфигурационном файле (.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 как $ 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
Как удалить дубликаты?Спасибо