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

Posted

技术标签:

【中文标题】从 laravel 刀片上的字符串中删除 HTML 标签【英文标题】:Remove HTML tags from Strings on laravel blade 【发布时间】:2016-07-14 19:54:16 【问题描述】:

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

代码

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

输出(示例)

<p>hassen zouari</p>

我希望它是这样的

hassen zouari

【问题讨论】:

您可以使用 strip_tags($string) 来剥离 html 标签。 【参考方案1】:

尝试使用strip_tags()函数:

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

更新: 尝试在控制器中做这样的事情:

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

然后将此变量传递给刀片模板并使用它代替$subject-&gt;body

【讨论】:

谢谢 :) 但是当我添加 !! \Illuminate\Support\Str::words($subject->body, 5,'...') !! 作为我想要加入此函数的字符串,它显示错误..【参考方案2】:

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

 strip_tags($yourString)  
//if your string is <h1> my string </h1>
//output will be my string.

希望对你有帮助:)

【讨论】:

谢谢 :) 但是当我添加 !! \Illuminate\Support\Str::words($subject->body, 5,'...') !! 作为我想要加入此函数的字符串,它显示错误..【参考方案3】:

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

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

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

【讨论】:

【参考方案4】:

你可以使用

 strip_tags( $value->description ) 

【讨论】:

【参考方案5】:

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

  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') 

【讨论】:

【参考方案6】:

只需这样做!! $value !! 就能解决您的问题

【讨论】:

但使用此标签后无法应用限制。 你的意思是限制字符吗? 它不会删除标签,但会将 HTML 应用于文本。 strip_tags 实际上会删除 HTML 而不应用它。【参考方案7】:

你必须知道 !! !!之间的区别

1.1) laravel 已经预定义你可以使用 $a 加载变量的精确值

1.2)laravel 加载带删除!! $a !!

请认真对待这个问题的答案,它可以保护您的网站免受跨站点脚本执行。例如,如果用户保存了他的名字但他输入了脚本 alert.then 如果您使用核心 php 并且不处理条形标签,那么当页面 laod 时执行此脚本

所以我给你一些更有害的例子 1)就像我把我的名字放在脚本或关于部分中,在脚本中我写了一些代码来获取打开网站的浏览器cookie和curl请求以保存在我的服务器上。

所以你明白如果我通过 curl 获取每个用户的 cookie 会发生什么,我只是在 about 文件中放入了一个交叉脚本并将其保存在数据库中。

【讨论】:

【参考方案8】:

在你的代码中使用它

$allcms = json_decode(strip_tags(Cms::where('status','active')->get()),true);

  return response()->json(['status' => 'success','message' =>'All CMS','data' => $allcms]);

【讨论】:

以上是关于从 laravel 刀片上的字符串中删除 HTML 标签的主要内容,如果未能解决你的问题,请参考以下文章

我可以从Laravel刀片模板登录吗?

Laravel 刀片视图不工作,没有刀片工作

Laravel 刀片上的 Vuejs

在 Laravel 的所有页面中包含一个带控制器的刀片

如何限制 laravel 刀片上的单词?

laravel 刀片 - 如何隐藏特定路线的 html 元素的显示