当前位置:网站首页>框架外的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相应的版本上把禁用函数去除即可

在这里插入图片描述
在访问即可
在这里插入图片描述

其他的参数自己根据代码获取,代码简单,自己读吧

最后

️️️️️️ 🥳🥳🥳 茫茫人海千千万万,感谢这一刻你看到了我的文章,感谢观赏,大家好呀,欢迎加入人工智能交流群(看我的动态),更多周边福利等你🥳🥳🥳

在这里插入图片描述

欢迎订阅本专栏或者关注我,大家一起努力每天一题算法题

️️️ 最后,希望我的这篇文章能对你的有所帮助!

愿自己还有你在未来的日子,保持学习,保持进步,保持热爱,奔赴山海! ️️️

原网站

版权声明
本文为[德宏大魔王]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_35230125/article/details/126225409