当前位置:网站首页>框架外的PHP读取.env文件(php5.6、7.3可用版)
框架外的PHP读取.env文件(php5.6、7.3可用版)
2022-08-11 08:17:00 【德宏大魔王】
背景:由于项目需要,在框架外(public文件夹下)新建了一个原生的php文件,由于不知道怎么解决
“框架外的php文件,怎么使用DB操作”
于是上网搜索了一早上也没能又方法
于是我使用了,原生连接方法
//连接数据库
$conn=mysqli_connect('localhost','demo','3KHC999zLX666','demo') or die("連接失敗");
// $conn = new PDO('mysql:host=localhost;dbname=xcx_club', 'xcx_m_club', 'yyyyyy');
mysqli_query($conn, "set names utf8");
后来由于客户说,最好就是指定一个文件,用env的就行,我上网找了很多,最终解决办法如下:
(我的环境 nginx php7,3)
.env文件
APP_DEBUG = true
[APP]
DEFAULT_TIMEZONE = Asia/Taipei
[DATABASE]
TYPE = mysql
HOSTNAME = 127.0.0.1
DATABASE = booking885_com
USERNAME = booking885_com
PASSWORD = 3KHC26dzLXd222
HOSTPORT = 3306
CHARSET = utf8mb4
DEBUG = true
authcode = j1g8KSrkbPLts9rNiM
[LANG]
default_lang = zh-cn
index.php文件
<?php
class Env
{
const ENV_PREFIX = 'PHP_';
/**
* 加载配置文件
* @access public
* @param string $filePath 配置文件路径 - php7+以上加string
* @return void - php7+才支持
*/
public static function loadFile($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($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"); /*调用配置文件*/
$app_api_url = Env::get('database.hostname'); /*调用变量方法*/
var_dump($app_api_url);
echo($app_api_url);
这里如果出现这样的问题
只需要在宝塔上的php相应的版本上把禁用函数去除即可
在访问即可
其他的参数自己根据代码获取,代码简单,自己读吧
最后
️️️️️️ 🥳🥳🥳 茫茫人海千千万万,感谢这一刻你看到了我的文章,感谢观赏,大家好呀,欢迎加入人工智能交流群(看我的动态),更多周边福利等你🥳🥳🥳
欢迎订阅本专栏或者关注我,大家一起努力每天一题算法题
️️️ 最后,希望我的这篇文章能对你的有所帮助!
愿自己还有你在未来的日子,保持学习,保持进步,保持热爱,奔赴山海! ️️️
边栏推荐
猜你喜欢
随机推荐
高德能力API
麒麟V10系统打包Qt免安装包程序
Two startup methods and differences of Service
迷你图书馆系统(对象+数组)
Use tf.argmax in Tensorflow to return the index of the maximum value of the tensor along the specified dimension
Kaldi语音识别工具编译问题记录(踩坑记录)
1071 Small Gamble (15 points)
IQUNIX A80 exploring TTC金粉 初体验
机器学习(二)线性回归
Interaction of Pico neo3 in Unity
AcWing 272. 最长公共上升子序列
如何通过 IDEA 数据库管理工具连接 TDengine?
为什么会没有内存了呢
少年成就黑客,需要这些技能
Four startup modes of Activity
Essential C# scripting skills for Unity developers
FPGA 20个例程篇:11.USB2.0接收并回复CRC16位校验
关于架构的认知
机器学习(一)数据的预处理
流式结构化数据计算语言的进化与新选择