【问题标题】:Removing html tags in Laravel blade删除 Laravel 刀片中的 html 标签
【发布时间】:2018-07-31 23:16:04
【问题描述】:

我在删除 HTML 标记时遇到问题。好吧,我从数据库中获取字符串

$desc = "<p>Test 1</p>";

当我用 htmlspecialchars 和其他过滤变量时,我有

$desc = "Test 1";

【问题讨论】:

标签: php laravel


【解决方案1】:
function strip_tags_content($text, $tags = '', $invert = FALSE) {

    preg_match_all('/<(.+?)[\s]*\/?[\s]*>/si', trim($tags), $tags);
    $tags = array_unique($tags[1]);

    if(is_array($tags) AND count($tags) > 0) {
        if($invert == FALSE) {
            return preg_replace('@<(?!(?:'. implode('|', $tags) .')\b)(\w+)\b.*?>.*?</\1>@si', '', $text);
        }
        else {
            return preg_replace('@<('. implode('|', $tags) .')\b.*?>.*?</\1>@si', '', $text);
        }
    }
    elseif($invert == FALSE) {
        return preg_replace('@<(\w+)\b.*?>.*?</\1>@si', '', $text);
    }
    return $text;
}

public function isolate($data)
{
    $data = trim($data);
    $data = $this->strip_tags_content($data);
    $data = htmlspecialchars($data);
    $data = strip_tags($data);
    $data = preg_replace('/\s\s+/', ' ', $data);
    $data = strtolower($data);
    return $data;
}

【讨论】:

    【解决方案2】:

    只需使用{!! $variable !!} 删除标签,使其在输出中不可见。

    在操作人员进一步澄清后更新

    因为你需要使用输出:strip_tags(htmlspecialchars_decode($desc))

    【讨论】:

    • 我已经尝试过了,但不要工作:( prntscr.com/ihrikt prntscr.com/ihrisb
    • 您是否在视图中使用$desc = "&lt;p&gt;Test 1&lt;/p&gt;";
    • description在DB端保存为什么类型,varchar还是text?
    • 我得到 $random(来自存储库的 $random,它与控制器的 comapct 一起发送并进入刀片 foreach 和 echo)
    • 是的,但我假设您的描述存储在数据库中,不是吗?
    【解决方案3】:

    {!!$description!!}

    这是删除 html 代码的代码,但在某些情况下它可能不起作用,因此您也可以使用它

    {!! nl2br(@$description) !!}
    

    但是你也可以使用

    strip_tags(htmlspecialchars_decode($description))
    

    【讨论】:

      【解决方案4】:

      你可以使用strip_tags:

      strip_tags(htmlspecialchars_decode($desc))
      

      如果你想打印带有这些标签的字符串:

      {!! $desc !!}
      

      【讨论】:

      • 我已经尝试过了,但不工作:( prntscr.com/ihrikt prntscr.com/ihrisb
      • 我很确定strip_tags 会起作用。请说明您究竟是如何尝试使用它的。
      • @Sava 如果dd($random-&gt;description) 给你这个字符串"&lt;p&gt;Test 1&lt;/p&gt;",那么代码就可以工作了。
      • 他们像“<p>Test!</p>”一样存储
      猜你喜欢
      • 2014-07-28
      • 2016-07-14
      • 2016-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-22
      • 2020-03-11
      • 2015-12-01
      相关资源
      最近更新 更多