框架外的PHP读取.env文件(php5.6、7.3可用版)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 背景:由于项目需要,在框架外(public文件夹下)新建了一个原生的php文件,由于不知道怎么解决。只需要在宝塔上的php相应的版本上把禁用函数去除即可。其他的参数自己根据代码获取,代码简单,自己读吧。“框架外的php文件,怎么使用DB操作”(我的环境 nginx php7,3)于是上网搜索了一早上也没能又方法。于是我使用了,原生连接方法。index.php文件。这里如果出现这样的问题。............

背景:由于项目需要,在框架外(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相应的版本上把禁用函数去除即可

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

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

最后

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

在这里插入图片描述

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

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

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

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
19天前
|
缓存 安全 PHP
【PHP开发专栏】Symfony框架核心组件解析
【4月更文挑战第30天】本文介绍了Symfony框架,一个模块化且高性能的PHP框架,以其可扩展性和灵活性备受开发者青睐。文章分为三部分,首先概述了Symfony的历史、特点和版本。接着,详细解析了HttpFoundation(处理HTTP请求和响应)、Routing(映射HTTP请求到控制器)、DependencyInjection(管理依赖关系)、EventDispatcher(实现事件驱动编程)以及Security(处理安全和认证)等核心组件。
|
19天前
thinkphp5.1隐藏index.php入口文件
thinkphp5.1隐藏index.php入口文件
32 0
thinkphp5.1隐藏index.php入口文件
|
19天前
|
存储 安全 PHP
【PHP 开发专栏】PHP 框架入门与选择
【4月更文挑战第30天】本文介绍了PHP框架的基础知识,强调其在提高开发效率和代码质量上的优势。文中列举了常见的PHP框架,如Laravel(适合复杂项目)、Symfony(适合企业级应用)、CodeIgniter(轻量级,适用于中小型项目)、Yii(高性能,适合大型应用)和Phalcon(极佳性能,适合高并发场景)。选择框架时,应考虑项目需求、学习曲线、社区支持和技术栈兼容性。
|
4天前
|
网络协议 中间件 API
探索PHP的异步编程:Swoole框架的应用
在Web开发领域,PHP以其易用性和广泛的社区支持而闻名。然而,传统的PHP编程模型通常是同步的,这意味着在处理请求时,服务器必须等待任务完成才能响应。随着技术的发展,异步编程逐渐成为提升应用性能的关键。本文将深入探讨如何通过Swoole框架实现PHP的异步编程,从而优化并发处理能力,并提高应用的响应速度和扩展性。
|
19天前
|
安全 PHP 数据库
【PHP开发专栏】PHP文件包含漏洞与防范
【4月更文挑战第30天】本文探讨了PHP文件包含漏洞,该漏洞让攻击者能执行恶意代码或访问敏感信息。文章分为三部分:原理、影响和防范。文件包含函数(如`include`和`require`)在攻击者控制文件名时可能导致漏洞。影响包括执行恶意代码、泄露敏感信息和影响服务器性能。防范措施包括验证文件名安全性、使用安全包含函数、设置安全包含路径和参数,以及定期更新和维护代码及库。开发者应重视此问题,采取相应措施保障应用安全。
|
19天前
|
设计模式 前端开发 PHP
【PHP开发专栏】Laravel框架快速上手
【4月更文挑战第30天】本文介绍了Laravel,一个流行的PHP Web框架,以其优雅语法和简洁设计受开发者喜爱。内容分为三部分:1) 环境准备与项目创建,包括安装Composer和使用Laravel安装器创建新项目;2) 基本概念和核心组件,涉及路由、控制器、模型和视图的使用;3) 进阶功能与实战应用,如用户认证、表单验证和邮件发送。通过学习,读者可快速上手Laravel,进行高效Web应用开发。
|
19天前
|
设计模式 前端开发 PHP
【PHP开发专栏】ThinkPHP框架实战开发
【4月更文挑战第29天】ThinkPHP是中国流行的PHP框架,以其轻量级、模块化和高安全性受到开发者欢迎。本文介绍了ThinkPHP的基础,包括MVC设计模式,以及核心组件如路由、数据库操作、表单处理、模板引擎和错误处理。通过一个博客系统示例,展示了如何进行项目开发,包括控制器、模型和视图的创建。使用ThinkPHP能有效提升开发效率,帮助开发者快速构建复杂的Web应用。
|
19天前
|
缓存 中间件 PHP
【PHP开发专栏】PHP框架中的路由与中间件
【4月更文挑战第29天】本文探讨了PHP框架中的路由和中间件概念。路由负责将HTTP请求映射到控制器方法,提供灵活的请求处理和URL管理。中间件则是在请求处理前后插入的代码,用于实现如身份验证、日志等功能,与业务逻辑解耦。通过Laravel框架的示例展示了如何定义路由和创建中间件,以实现代码的模块化和可维护性。
|
19天前
|
Ubuntu PHP
ubuntu16.04 卸载 php7并安装php5.6记录
ubuntu16.04 卸载 php7并安装php5.6记录
|
19天前
|
PHP Windows
php扩展com_dndnet(PHP与.NET框架进行交互)
php扩展com_dndnet(PHP与.NET框架进行交互)
php扩展com_dndnet(PHP与.NET框架进行交互)