PHP でコンフィグレーションファイルを読むのに
parse_ini_file()があるが、書き込む関数が見当たらない。
webで検索しても見つからないので作ってみた。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
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() と同じ結果だから、手軽に使うならこれでいいや。