从laravel刀片上的字符串中删除HTML标签

问题描述 投票:26回答:7

我想从laravel刀片上的字符串中删除HTML标签(全部)...

代码

{!! \Illuminate\Support\Str::words($subject->body, 5,'...')  !!}

输出(示例)

<p>hassen zouari</p>

我希望是这样

hassen zouari
laravel laravel-4 laravel-5
7个回答
53
投票

尝试使用strip_tags()功能:

http://php.net/manual/en/function.strip-tags.php

更新:尝试在控制器中执行以下操作:

$taglessBody = strip_tags($subject->body);

然后将此变量传递到刀片模板中,并使用它代替$subject->body


12
投票

您可以使用strip_tags($ yourString);剥离html标签。在刀片中,您可以通过

实现此目的
{{ strip_tags($yourString) }} 
//if your string is <h1> my string </h1>
//output will be my string.

希望有帮助:)


6
投票

至于我,我使用这种结构:

{!! str_limit(strip_tags($post->text), $limit = 50, $end = '...') !!}

希望我的代码对某人有帮助)


2
投票

将以下代码添加到您的助手中

  if (! function_exists('words')) {
        /**
         * Limit the number of words in a string.
         *
         * @param  string  $value
         * @param  int     $words
         * @param  string  $end
         * @return string
         */
        function words($value, $words = 100, $end = '...')
        {
            return \Illuminate\Support\Str::words($value, $words, $end);
        }
    }

&在刀片中使用它

{{ words($sentence), $limit = 20, $end = ' ..... more') }}


2
投票

您可以使用

{{ strip_tags( $value->description ) }}

1
投票

仅通过执行此{!! $value !!}即可解决您的问题


0
投票

希望我的解释对某人有所帮助

您必须了解{{ }}{!! !!}之间的差异

1.1)laravel已预定义,您可以使用{{$a }}加载确切的变量值>

1.2)使用条带删除{!! $a !!}进行laravel加载>

请认真对待这个问题,它可以保护您的网站不受跨站点脚本执行的影响。例如,如果用户保存了他的名字却放了脚本,alert.then,如果您使用核心php而不处理strip标签,则此脚本将在页面laod时执行

所以我给你一些更有害的例子1)就像我把我的名字放在脚本中或在About部分中一样,在脚本中我写了一些代码,这些代码获得了打开的网站的浏览器cookie并卷曲请求以保存在我的服务器上。

所以,如果我通过curl获得每个用户cookie,而我只是将交叉脚本放入文件中并将其保存在数据库中,就会发生这种情况。

要阅读我的研究,您可以访问我的博客http://expertsuggestion.com/

© www.soinside.com 2019 - 2024. All rights reserved.