laravel自定义刀片指令,除了htmlentites输出的标签功能

时间:2016-11-21 12:29:52

标签: laravel

\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=....)

我尝试在没有htmlentites的情况下从数据库中为html输出图像制作自定义函数。

我的问题是我收到错误syntax error, unexpected '&',我不知道

任何人都知道如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

试试,它应该修复错误

return "<?PHP echo \"$output\"?>";

同样作为函数的参数,给定输入

@specialReplace(img, <img src=....)

您将收到传递给direcive的精确字符串(连同括号)

(img, <img src=....)

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