【问题标题】:Escaping double quotes in a href using php使用php在href中转义双引号
【发布时间】:2017-06-26 19:16:51
【问题描述】:

我有一个简单的问题。我有这个函数使用 php laravel 输出一个可点击的链接。 这是后端的一部分。

  public function linkify($text){
  //$text = preg_replace('/\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[A-Z0-9+&@#\/%=~_|]/i', '<a href="\0">\0</a>', $text);
   $text = '<a href="http://google.com">http://google.com</a> ';
      return $text; 
  }

 foreach ($res as $row) {
   $subject= $this->linkify($row['subject']);
   $json['amps'][$x]['subject']= $subject;
   $x++;
  }
 echo json_encode($json);

这是前端

{{#each amps}}
        <li class="message">
        <img src="/images/people/{{pic}}" class="chatpic" alt="">
            <div class="message-text">
                {{subject}}         
            </div>
        </li>
    {{/each}}

问题在于,它不是输出可点击的链接,而是只显示纯文本。 我还注意到链接用双引号引起来 这是控制台窗口的源代码

任何帮助将不胜感激

【问题讨论】:

  • 当你使用这些字符串时,字符串会自动转义。可能与this question 重复。

标签: php laravel


【解决方案1】:

您需要使用正确的括号语法来显示未转义的 HTML

<div class="message-text">
            {!! subject !!}         
 </div>

标准括号将您的值包含在幕后的 htmlentities() 方法中,以净化用户输入。

【讨论】:

  • 我目前使用的是 laravel 4.1.24,不支持语法。有替代语法吗?或者你知道 laravel > 5 是否向后兼容?
  • 您需要创建一个刀片宏。在此处找到说明stackoverflow.com/questions/16613110/…
  • 我设法通过使用 {{{ subject }}} 来解决这个问题。不过感谢您的帮助。我很感激
【解决方案2】:

不要使用{!! subject !!},而是使用三方括号{{{ subject }}}

免责声明:我正在写 Israel Gonzales 的评论作为答案,因为这是我从 Google 获得的第一个链接,用于我的问题,接受的答案并没有解决我的问题,但他的评论解决了。支持>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-26
    • 1970-01-01
    • 1970-01-01
    • 2015-09-06
    • 2013-06-17
    • 1970-01-01
    相关资源
    最近更新 更多