【问题标题】:Laravel 5.1 Linkification / clickable links in user-entered textLaravel 5.1 用户输入文本中的链接/可点击链接
【发布时间】:2016-01-25 19:25:48
【问题描述】:

我目前正在开发一个 Laravel 5.1 项目并使用 Blade 模板引擎。

Blade 提供的语法通常会像这样转义所有用户输入:

{{ $value }}

我现在想在输出用户输入时从用户输入中转义所有内容,但 URL 以使链接可点击。

例如链接

http://google.de/ 

应该被捕获(即被某个正则表达式)并转化为:

<a href="http://google.de">http://google.de/</a>

我确实有可能使用纯 PHP 在我的 AppServiceProvider 中执行此操作(遍历文本,将文本链接替换为可点击的 HTML 元素,并将所有 链接替换为相应的 HTML-Entity同行)。

但是,由于这是一个框架,而且框架旨在减轻一遍又一遍地重新发明轮子的负担,我希望有一些比我在所有其他 PHP 脚本中所做的更好的解决方案。

【问题讨论】:

    标签: php laravel input blade


    【解决方案1】:

    我不知道我是否说清楚了,但是

    {!! $value !!}  
    

    将阻止默认刀片逃逸。因此,如果在您的刀片视图中,您有一个等于 http://google.de/$link 变量,您肯定可以将其显示为未转义:

    <a href="{!! $link !!}">{!! $link !!}</a>
    

    【讨论】:

    • 感谢您的回复,但您没有抓住重点。我要求的是“转义所有内容,但 URL”(请参阅​​问题文本) - 这样我就可以将它们从纯文本表示形式转换为可点击的链接。
    • @RobinHeller 好的,所以我是对的,但我没有做对。你在寻找类似this 的东西吗?
    • 我通过使用 linkify 尝试了@MisterP 的答案,我相信他的答案应该被标记为答案,因为没有决定接受的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-22
    • 1970-01-01
    • 2021-12-24
    • 1970-01-01
    • 1970-01-01
    • 2022-07-28
    相关资源
    最近更新 更多