您的位置:首页 > 编程语言 > PHP开发

php读取配置文件

2020-04-28 00:23 731 查看

根据think\Env摘出来改造,可以拿来直接用。

<?php

class Env
{
const ENV_PREFIX = 'PHP_';

/**
* 加载配置文件
* @access public
* @param string $filePath 配置文件路径
* @return void
*/
public static function loadFile(string $filePath):void
{
if (!file_exists($filePath)) throw new \Exception('配置文件' . $filePath . '不存在');
//返回二位数组
$env = parse_ini_file($filePath, true);
foreach ($env as $key => $val) {
$prefix = static::ENV_PREFIX . strtoupper($key);
if (is_array($val)) {
foreach ($val as $k => $v) {
$item = $prefix . '_' . strtoupper($k);
putenv("$item=$v");
}
} else {
putenv("$prefix=$val");
}
}
}

/**
* 获取环境变量值
* @access public
* @param string $name 环境变量名(支持二级 . 号分割)
* @param string $default 默认值
* @return mixed
*/
public static function get(string $name, $default = null)
{
$result = getenv(static::ENV_PREFIX . strtoupper(str_replace('.', '_', $name)));

if (false !== $result) {
if ('false' === $result) {
$result = false;
} elseif ('true' === $result) {
$result = true;
}
return $result;
}
return $default;
}
}

Env::loadFile('.env');
echo Env::get('database.hostname');

---------------------------------------------------------------------
.env文件格式

[database]
hostname =  127.0.0.1
database =  test
username =  root
password =  root123456
[payment]
wx_appid =  xxxxxx
wx_appsecret = yyyyyy
wx_mchid = zzzzzz
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: