设为首页 加入收藏

TOP

PHP实现动态修改.env文件配置(适用于任何框架)
2023-07-23 13:26:14 】 浏览:68
Tags: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');
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇浅谈PHP设计模式的建造者模式 下一篇PHP 并发方案建议

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目