laravel在代码中动态修改.env文件的值

作者:二三   2020-01-13 11:04:40   534

在使用Laravel框架的时候遇到一个需求,需要在代码中动态的修改.env文件中的邮箱信息。



百度后得到如下代码:

function modifyEnv(array $data) 
{
$envPath = base_path() . DIRECTORY_SEPARATOR . '.env';

$contentArray = collect(file($envPath, FILE_IGNORE_NEW_LINES));

$contentArray->transform(function ($item) use ($data){
foreach ($data as $key => $value){
if(str_contains($item, $key)){
return $key . '=' . $value;
}
}

return $item;
});

$content = implode($contentArray->toArray(), "\n");

\File::put($envPath, $content);
}

来源:脚本之家


但是发现缺少str_contains方法,此处补充str_contains方法如下:

    function str_contains($haystack, $needles)
{
if(is_array($needles))
{
foreach($needles as $needle)
{
if(is_array($needle))
{
if(self::str_contains($haystack, $needle))
{
return true;
}

return false;
}
elseif(preg_match("/\b$needle\b/i", $haystack) !== 0)
{
return true;
}
}
}else{
if(preg_match("/\b$needles\b/i", $haystack) !== 0)
{
return true;
}
}
return false;
}



热门文章 关于前台使用ajax后台使用PhpSpreadsheet从数据库导出excel 对于Laravel Blade模板转义html标签的记录 PHP-文件上传 去除隐藏字符—— PHP-验证码制作
评论成功!
评论内容不能为空

tips:仅支持jpg,jpeg,png格式图片。