Blade可能无法逃脱某些HTML标签?

时间:2016-02-18 08:03:03

标签: laravel-5.1 blade

在Laravel Blade中,{{...}}将转义所有HTML标记。

是否可以排除某些代码被转义,例如<p><br/>?虽然我可以{!!...!!}},但它将允许显示任何标签。

1 个答案:

答案 0 :(得分:0)

你应该去郎 vendor\laravel\framework\src\Illuminate\View\Compilers\BladeCompiler.php
并改变这个功能

    protected function compileRawEchos($value)
{
    $pattern = sprintf('/(@)?%s\s*(.+?)\s*%s(\r?\n)?/s', $this->rawTags[0], $this->rawTags[1]);

    $callback = function ($matches) {
        $whitespace = empty($matches[3]) ? '' : $matches[3].$matches[3];

        return $matches[1] ? substr($matches[0], 1) : '<?php echo '.$this->compileEchoDefaults($matches[2]).'; ?>'.$whitespace;
    };

    return preg_replace_callback($pattern, $callback, $value);
}