end0tknr's kipple - web写経開発

太宰府天満宮の狛犬って、妙にカワイイ

php で conf 形式のfile読込み - ただし、「:」セパレータ

perlでは、Config::Auto という moduleがあり、 セパレータとして「=」や「:」を指定できます。

https://metacpan.org/pod/Config::Auto

phpにも、parse_ini_file() がありますが、セパレータは「=」のみのようです。

https://www.php.net/manual/ja/function.parse-ini-file.php

なので、自前で「:」セパレータのparse_ini_file()を書くと、 次のようになります。

<?php

$ini_path = '/home/end0tknr/hogehoge/contact/config.ini';

main();

function main(){

    global $ini_path;
    $fh = fopen($ini_path, "r") or die("fail fopen $ini_path");
    
    $conf = array();
    while ( $line = fgets($fh) ) {
        $line = mb_ereg_replace(';.*', '', trim($line));
        if( mb_strlen($line)==0 ){
            continue;
        }

        $atri_key_val = explode(":",$line);
        $conf[trim($atri_key_val[0])] = trim($atri_key_val[1]);
    }
    fclose($fh);
    
    echo(var_dump($conf) ."\n");
    //        echo($line ."\n");
}