я использую функцию write_php_ini для записи файлов
увидеть принятый ответ с 40 голосами против:
создать INI-файл, записать значения в PHP
Первоначально я копировал отсюда:
Как читать и писать в INI-файл с помощью PHP
из ответа, который не принят, потому что они выглядели так похожи
проблема в том, что если 2 процесса пишут в него одновременно? (то есть второй пост, кажется, обрабатывает это, тогда как первый не делает)
как избежать этой проблемы?
это код:
public static function write_ini_file($assoc_arr, $path, $has_sections=FALSE) {
$content = "";
if ($has_sections) {
foreach ($assoc_arr as $key=>$elem) {
$content .= "[".$key."]\n";
foreach ($elem as $key2=>$elem2) {
if(is_array($elem2))
{
for($i=0;$i<count($elem2);$i++)
{
$content .= $key2."[] = \"".$elem2[$i]."\"\n";
}
}
else if($elem2=="") $content .= $key2." = \n";
else $content .= $key2." = \"".$elem2."\"\n";
}
}
}
else {
foreach ($assoc_arr as $key=>$elem) {
if(is_array($elem))
{
for($i=0;$i<count($elem);$i++)
{
$content .= $key."[] = \"".$elem[$i]."\"\n";
}
}
else if($elem=="") $content .= $key." = \n";
else $content .= $key." = \"".$elem."\"\n";
}
}
if (!$handle = fopen($path, 'w')) {
return false;
}
$success = fwrite($handle, $content);
fclose($handle);
return $success;
}
Задача ещё не решена.
Других решений пока нет …