ソースコード
<?php
$envs = getEnvSimple('.env');
echo '<pre>';
var_dump($envs);
echo '</pre>';
function getEnvSimple($env_fn) {
// 引数のiniファイル名が空、もしくは存在しなければ、なら、nullを返して終了
if (! $env_fn) return null;
$str = null;
$env_fn=mb_convert_encoding($env_fn,'SJIS','UTF-8');
if (!is_file($env_fn)){
return null;
}
if ($fp = fopen ( $env_fn, "r" )) {
$data = array ();
while ( false !== ($line = fgets ( $fp )) ) {
$str .= mb_convert_encoding ( $line, 'utf-8', 'utf-8,sjis,euc_jp,jis' );
}
}
fclose ( $fp );
$ary = preg_split( "/¥R/", $str );
$envs = [];
foreach($ary as $line_str){
$line_str = trim($line_str);
if(empty($line_str)) continue;
$ary2 = preg_split("/=/", $line_str);
if(count($ary2) < 2) continue;
$key = trim($ary2[0]);
if(empty($key)) continue;
$envs[$key] = trim($ary2[1]);
}
return $envs;
}
?>
出力
array(11) {
["ANIMAL_NAME"]=>
string(18) "おキャット様"
["APP_NAME"]=>
string(7) "Example"
["APP_ENV"]=>
string(5) "local"
["APP_KEY"]=>
string(50) "base64:gwTmSBhSHtDmqDNg9ZaHSpYsNgGWmkZihBtxVqZklmI"
["APP_DEBUG"]=>
string(4) "true"
["APP_URL"]=>
string(16) "http://localhost"
["LOG_CHANNEL"]=>
string(5) "stack"
["LOG_DEPRECATIONS_CHANNEL"]=>
string(4) "null"
["LOG_LEVEL"]=>
string(5) "debug"
["DB_CONNECTION"]=>
string(5) "mysql"
["DB_HOST"]=>
string(9) "localhost"
}