翼度科技»论坛 编程开发 PHP 查看内容

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

5

主题

5

帖子

15

积分

新手上路

Rank: 1

积分
15
  1. /**
  2. * @function 动态的设置env文件中某项配置值
  3. * @param    $env_path string     env文件路径
  4. * @param    $key      string     配置项
  5. * @param    $val      string|int 配置值
  6. * @return   bool      返回是否成功修改
  7. * @other    如果env文件中没有这$key这一项,会在env文件末尾追加
  8. */
  9. function setEnvVal($env_path, $key, $val) {
  10.     //获取数据
  11.     $env_content = @file($env_path);
  12.     $env_data = preg_grep('/^#' . $key . '=|^' . $key . '=/', $env_content);
  13.     $old_value = $env_data ? preg_replace('/\r|\n/', '', array_shift($env_data)) : '';
  14.     //写入数据
  15.     $new_data = $key . '=' . $val;
  16.     if($old_value) {
  17.         $regex = '/^' . preg_quote($old_value, '/') . '/m';
  18.         return (bool) @file_put_contents($env_path, preg_replace($regex, $new_data, implode($env_content, '')));
  19.     }
  20.     return (bool) @file_put_contents($env_path, PHP_EOL . $new_data, FILE_APPEND);
  21. }
  22. //调用
  23. $set_env_res = setEnvVal('env_path', 'key', 'val');
复制代码
  1. /**
  2. * @function 动态的设置env文件中某项配置值
  3. * @param    $env_path string     env文件路径
  4. * @param    $key      string     配置项
  5. * @param    $val      string|int 配置值
  6. * @return   bool      返回是否成功修改
  7. * @other    如果env文件中没有这$key这一项,会在env文件末尾追加
  8. */
  9. function setEnvVal($env_path, $key, $val) {
  10.     //获取数据
  11.     $env_content = @file($env_path);
  12.     $env_data = preg_grep('/^#' . $key . '=|^' . $key . '=/', $env_content);
  13.     $old_value = $env_data ? preg_replace('/\r|\n/', '', array_shift($env_data)) : '';
  14.     //写入数据
  15.     $new_data = $key . '=' . $val;
  16.     if($old_value) {
  17.         $regex = '/^' . preg_quote($old_value, '/') . '/m';
  18.         return (bool) @file_put_contents($env_path, preg_replace($regex, $new_data, implode($env_content, '')));
  19.     }
  20.     return (bool) @file_put_contents($env_path, PHP_EOL . $new_data, FILE_APPEND);
  21. }
  22. //调用
  23. $set_env_res = setEnvVal('env_path', 'key', 'val');
复制代码
  1. /**
  2. * @function 动态的设置env文件中某项配置值
  3. * @param    $env_path string     env文件路径
  4. * @param    $key      string     配置项
  5. * @param    $val      string|int 配置值
  6. * @return   bool      返回是否成功修改
  7. * @other    如果env文件中没有这$key这一项,会在env文件末尾追加
  8. */
  9. function setEnvVal($env_path, $key, $val) {
  10.     //获取数据
  11.     $env_content = @file($env_path);
  12.     $env_data = preg_grep('/^#' . $key . '=|^' . $key . '=/', $env_content);
  13.     $old_value = $env_data ? preg_replace('/\r|\n/', '', array_shift($env_data)) : '';
  14.     //写入数据
  15.     $new_data = $key . '=' . $val;
  16.     if($old_value) {
  17.         $regex = '/^' . preg_quote($old_value, '/') . '/m';
  18.         return (bool) @file_put_contents($env_path, preg_replace($regex, $new_data, implode($env_content, '')));
  19.     }
  20.     return (bool) @file_put_contents($env_path, PHP_EOL . $new_data, FILE_APPEND);
  21. }
  22. //调用
  23. $set_env_res = setEnvVal('env_path', 'key', 'val');
复制代码
来源:https://www.cnblogs.com/phpphp/p/17052587.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具