laravel自定义刀片指令,HTMLENTES输出的标记函数除外 \Blade::指令('specialReplace',函数($expression){ $expression=分解(“,”,$expression); $exception=$expression[0]; $output=htmlspecialchars($expression[1]); 如果($exception==“img”){ $output=str_替换(“img”

laravel自定义刀片指令,HTMLENTES输出的标记函数除外 \Blade::指令('specialReplace',函数($expression){ $expression=分解(“,”,$expression); $exception=$expression[0]; $output=htmlspecialchars($expression[1]); 如果($exception==“img”){ $output=str_替换(“img”,laravel,Laravel,我尝试为数据库中的html输出图像创建一个自定义函数,而不使用laravel中的HTMLEntes 我的问题是我得到了一个错误语法错误,意外的'&',我不知道 有人知道如何解决这个问题吗?试试看,它会解决这个错误 \Blade::directive('specialReplace', function($expression){ $expression = explode(',', $expression); $exception = $expression[0]; $

我尝试为数据库中的html输出图像创建一个自定义函数,而不使用laravel中的HTMLEntes

我的问题是我得到了一个错误
语法错误,意外的'&'
,我不知道


有人知道如何解决这个问题吗?

试试看,它会解决这个错误

\Blade::directive('specialReplace', function($expression){
    $expression = explode(',', $expression);

    $exception = $expression[0];
    $output = htmlspecialchars($expression[1]);

    if ($exception == "img") {
        $output = str_replace("&lt;img", "<img", $output);
        $output = str_replace("/&gt;", "/>", $output);
    } else {
        $output = str_replace("&lt;".$exception."&gt;", "<".$exception.">",$output);
        $output = str_replace("&lt;/".$exception."&gt;", "</".$exception.">",$output);
    }

    return "<?PHP echo $output?>";
});

@specialReplace(img, <img src=....)
返回“”;
也可以作为函数的参数,给定输入

return "<?PHP echo \"$output\"?>";
@specialReplace(img,
您将收到传递给direcive的确切字符串(连同括号)

(img,

看起来你没有正确地解析它。

提供你想要的简单输出?我想要HtmlEntes escape img标记,这样我仍然可以在所有内容上添加图像标记。现在我发布答案太早了,现在就看一看;)是的,这就是为什么我将字符串分解成数组。我这样做的原因是因为我希望这个函数也能够转义其他标记,这取决于我需要什么。我可以为thx选择很多,这真的很有帮助,我现在知道我的问题出在哪里了
@specialReplace(img, <img src=....)
(img, <img src=....)