PHP でコンフィグレーションファイルを読むのに
parse_ini_file()があるが、書き込む関数が見当たらない。
webで検索しても見つからないので作ってみた。
function add_quote($quote_str,$val){
if(is_string($val)){
$val = "${quote_str}${val}${quote_str}";
}
return $val;
}
function parse_array($ini_array,$buf=""){
if(is_array($ini_array)){
foreach($ini_array as $key=>$val){
if(is_array($val)){
foreach($val as $key2=>$val2){
$buf .= "${key}[${$key2}] = " . add_quote('"',$val2) ."\n";
}
}else{
$buf .= "${key} = " . add_quote('"',$val) ."\n";
}
}
}
return $buf;
}
function write_ini_file($filename,$ini_array,$process_sections = false){
if(is_array($ini_array)){
$fp = fopen($filename,"w");
foreach($ini_array as $key=>$val){
$buf = "";
if(is_array($val)){
if($process_sections != false){
$buf .= "[${key}]\n";
}
$buf .= parse_array($val);
}else{
$buf .= "${key} = " . add_quote('"',$val) ."\n";
}
fwrite($fp,$buf);
}
fclose($fp);
}
}
これで一応、parse_ini_file()のサンプルが正常に展開格納できるが、Zend Frameworkにiniファイル書くヤツがあるというのが分かった。
しかし、Zend Framework の Zend_Config_Writer_Ini() と同じ結果だから、手軽に使うならこれでいいや。