Как читать и писать в ini-файл с помощью PHP

Я просматривал официальную документацию php, но я не могу найти то, что ищу.

http://php.net/manual/en/function.parse-ini-file.php

Я просто хочу, чтобы функция редактировала и читала значение из файла php ini, например,

[default_colors] sitebg = #F8F8F8 footerbg = #F8F8F8 link = #F8F8F8 url = #F8F8F8 bg = #F8F8F8 text = #F8F8F8 border = #F8F8F8 lu_link = #F8F8F8 lu_url = #F8F8F8 lu_bg = #F8F8F8 lu_text = #f505f5 lu_border = #F8F8F8 
  1. Как читать значение, принадлежащее «lu_link» или «footerbg»?
  2. Как написать новое значение для этих мест?

Пакет PEAR Config_Lite может выполнять почти всю работу (как чтение, так и запись) для вас очень легко. Посмотрите здесь: http://pear.php.net/package/Config_Lite

Вы можете просто использовать parse_ini_file с PHP4 / 5.

 $ini_array = parse_ini_file("sample.ini"); print_r($ini_array); 

Вот документ: http://php.net/manual/en/function.parse-ini-file.php

Чтобы написать массив объектов обратно в ini-файл, используйте ниже как очень быстрое и простое решение:

 function write_php_ini($array, $file) { $res = array(); foreach($array as $key => $val) { if(is_array($val)) { $res[] = "[$key]"; foreach($val as $skey => $sval) $res[] = "$skey = ".(is_numeric($sval) ? $sval : '"'.$sval.'"'); } else $res[] = "$key = ".(is_numeric($val) ? $val : '"'.$val.'"'); } safefilerewrite($file, implode("\r\n", $res)); } function safefilerewrite($fileName, $dataToSave) { if ($fp = fopen($fileName, 'w')) { $startTime = microtime(TRUE); do { $canWrite = flock($fp, LOCK_EX); // If lock not obtained sleep for 0 - 100 milliseconds, to avoid collision and CPU load if(!$canWrite) usleep(round(rand(0, 100)*1000)); } while ((!$canWrite)and((microtime(TRUE)-$startTime) < 5)); //file was locked so now we can store information if ($canWrite) { fwrite($fp, $dataToSave); flock($fp, LOCK_UN); } fclose($fp); } } 

Как насчет этого:

  $key='option'; $val='1.2.3.4.5'; system("sed -ie 's/\({$key}=\)\(.*\)/\1{$val}/' file.in"); 

Вы можете просто использовать ini_set('lu_link','#000000'); или ini_get('lu_link') .

Я чувствую, что если у вас ограниченный опыт работы с PHP, это нехорошо возиться с файлом .ini .