我目前正在做一个Laravel 5.1项目,使用的是Blade模板引擎。
Blade提供了一种语法,通常转义所有用户输入,如下所示:
{{ $value }}
我现在想转义的一切,但url 从用户输入输出时,为了使链接可点击。
例如,链接
http://google.de/
应该被捕获(即通过特定的RegEx)并转换为:
<a href="http://google.de">http://google.de/</a>
我确实有可能在我的AppServiceProvider中使用纯PHP(遍历文本,用可点击的HTML元素替换文本链接,并将不是链接的所有内容替换为其各自的HTML实体对应项)。
然而,因为这是一个框架,而框架的设计是为了减轻一遍又一遍地重新发明轮子的负担,我希望有一些更好的解决方案,而不是做我在其他PHP脚本中所做的事情。
我不知道我是否讲清楚了,但是
{!! $value !!}
将阻止默认的刀片转义。因此,如果在刀片视图中,您有一个$link
变量等于http://google.de/
,您当然可以将其显示为未转义的:
<a href="{!! $link !!}">{!! $link !!}</a>