从 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->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 标签的主要内容,如果未能解决你的问题,请参考以下文章