PHP实现动态修改.env文件配置(适用于任何框架)

/**
 * @function 动态的设置env文件中某项配置值
 * @param    $env_path string     env文件路径
 * @param    $key      string     配置项
 * @param    $val      string|int 配置值
 * @return   bool      返回是否成功修改
 * @other    如果env文件中没有这$key这一项,会在env文件末尾追加
 */
function setEnvVal($env_path, $key, $val) {
    //获取数据
    $env_content = @file($env_path);
    $env_data = preg_grep('/^#' . $key . '=|^' . $key . '=/', $env_content);
    $old_value = $env_data ? preg_replace('/\r|\n/', '', array_shift($env_data)) : '';

    //写入数据
    $new_data = $key . '=' . $val;
    if($old_value) {
        $regex = '/^' . preg_quote($old_value, '/') . '/m';
        return (bool) @file_put_contents($env_path, preg_replace($regex, $new_data, implode($env_content, '')));
    }

    return (bool) @file_put_contents($env_path, PHP_EOL . $new_data, FILE_APPEND);
}

//调用
$set_env_res = setEnvVal('env_path', 'key', 'val');
/**
 * @function 动态的设置env文件中某项配置值
 * @param    $env_path string     env文件路径
 * @param    $key      string     配置项
 * @param    $val      string|int 配置值
 * @return   bool      返回是否成功修改
 * @other    如果env文件中没有这$key这一项,会在env文件末尾追加
 */
function setEnvVal($env_path, $key, $val) {
    //获取数据
    $env_content = @file($env_path);
    $env_data = preg_grep('/^#' . $key . '=|^' . $key . '=/', $env_content);
    $old_value = $env_data ? preg_replace('/\r|\n/', '', array_shift($env_data)) : '';

    //写入数据
    $new_data = $key . '=' . $val;
    if($old_value) {
        $regex = '/^' . preg_quote($old_value, '/') . '/m';
        return (bool) @file_put_contents($env_path, preg_replace($regex, $new_data, implode($env_content, '')));
    }

    return (bool) @file_put_contents($env_path, PHP_EOL . $new_data, FILE_APPEND);
}

//调用
$set_env_res = setEnvVal('env_path', 'key', 'val');
/**
 * @function 动态的设置env文件中某项配置值
 * @param    $env_path string     env文件路径
 * @param    $key      string     配置项
 * @param    $val      string|int 配置值
 * @return   bool      返回是否成功修改
 * @other    如果env文件中没有这$key这一项,会在env文件末尾追加
 */
function setEnvVal($env_path, $key, $val) {
    //获取数据
    $env_content = @file($env_path);
    $env_data = preg_grep('/^#' . $key . '=|^' . $key . '=/', $env_content);
    $old_value = $env_data ? preg_replace('/\r|\n/', '', array_shift($env_data)) : '';

    //写入数据
    $new_data = $key . '=' . $val;
    if($old_value) {
        $regex = '/^' . preg_quote($old_value, '/') . '/m';
        return (bool) @file_put_contents($env_path, preg_replace($regex, $new_data, implode($env_content, '')));
    }

    return (bool) @file_put_contents($env_path, PHP_EOL . $new_data, FILE_APPEND);
}

//调用
$set_env_res = setEnvVal('env_path', 'key', 'val');

原文链接:https://www.cnblogs.com/phpphp/p/17052587.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PHP实现动态修改.env文件配置(适用于任何框架) - Python技术站

(0)
上一篇 2023年4月18日
下一篇 2023年4月18日

相关文章

  • php删除数组指定元素实现代码

    下面我就来详细讲解一下“php删除数组指定元素实现代码”的完整攻略。 一、php删除数组指定元素的实现方法 1. 使用unset函数删除数组指定元素 在php中,我们可以使用unset函数来删除数组中的指定元素。unset函数可以接受一个或多个参数,每个参数可以是字符串、变量名或数组元素。若参数是一个数组元素,那么该元素会被删除掉。 以下是使用unset函数…

    PHP 2023年5月26日
    00
  • PHP 网络开发详解之远程文件包含漏洞

    PHP 网络开发详解之远程文件包含漏洞 远程文件包含(RFI)属于一种常见的漏洞类型,攻击者通过该漏洞可以执行任意代码,甚至获取控制权。以下将详细讲解如何利用RFI漏洞实现攻击,并给出两个实例: 概述 远程文件包含漏洞是指攻击者通过指定一段远程URL链接的方式,使服务器端动态脚本在执行时将含有攻击代码的远程文件包含进来,进而实现在服务器上执行恶意代码的行为。…

    PHP 2023年5月26日
    00
  • PHP概述.

    下面给出关于“PHP概述”的完整攻略,希望能对你有所帮助。 PHP概述 PHP(Open source scripting language for web servers) 是一种流行的服务器端开发语言,主要用于开发Web应用程序。PHP可以轻松地嵌入HTML代码中,使得程序员能够快速开发动态Web页面。PHP是跨平台的,支持多种操作系统,如Windows…

    PHP 2023年5月24日
    00
  • php操作(删除,提取,增加)zip文件方法详解

    让我来为大家详细讲解一下“php操作(删除,提取,增加)zip文件方法详解”。本篇攻略将分为以下几个部分: PHP zip扩展的安装与使用 PHP操作zip文件的基本方法 PHP增加zip文件的方法 PHP删除zip文件中的文件的方法 PHP提取zip文件中的文件的方法 接下来我们将一步步来详细讲解以上这些部分。 1.PHP zip扩展的安装与使用 首先,在…

    PHP 2023年5月26日
    00
  • PHP 创建文件(文件夹)以及目录操作代码

    下面我将详细讲解如何使用PHP创建文件和文件夹,以及如何操作目录。 创建文件 要在PHP中创建文件,可以使用fopen()函数创建文件并返回文件指针,然后使用fwrite()函数将要写入文件的内容写入文件,最后使用fclose()函数关闭文件。 以下是一个示例代码,创建一个名为test.txt的文件并在其中写入一些字符串: $filename = ‘test…

    PHP 2023年5月23日
    00
  • php设计模式 Prototype (原型模式)代码

    下面介绍一下”php设计模式 Prototype (原型模式)代码”的完整攻略。 什么是Prototype模式 Prototype模式是一种创建型模式,其核心在于通过复制现有的对象实例来创建新的实例,而不是通过使用构造函数或工厂方法直接创建,并且不需要知道创建的细节。 Prototype模式的优点 通过复制现有的实例来创建新的实例,可以简化对象的创建过程,降…

    PHP 2023年5月23日
    00
  • 创造世界上最简单的 PHP 开发模式第5/5页

    下面是关于 “创造世界上最简单的 PHP 开发模式” 的完整攻略。 创造世界上最简单的 PHP 开发模式 背景 很多刚接触 PHP 的程序员可能会觉得,PHP 语言上手容易,但是开发起来有很多琐碎的细节。为了简化 PHP 开发的流程,我们可以创建一个简单的开发模式,从而提高开发效率并减少潜在的错误。 实现步骤 步骤1:创建目录结构 我们首先需要创建以下目录结…

    PHP 2023年5月23日
    00
  • php遍历目录输出目录及其下的所有文件示例

    PHP遍历目录输出目录及其下的所有文件 1. 准备目录结构 在开始之前,需要准备一个目录结构,用于测试遍历目录的功能。假设在网站的根目录下准备一个名为 test 的目录,并在该目录下分别创建两个子目录 folder1 和 folder2,并在这两个子目录下分别各创建一个文件。目录结构如下: test/ |– folder1/ | |– file1.txt…

    PHP 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部