本文作者:DurkBlue

php (富文本)内容生成纯文本摘要(去除html标签)

php (富文本)内容生成纯文本摘要(去除html标签)摘要: 废话少说,直接上代码:' = (); = '/\s/'; = (, ''...

废话少说,直接上代码:

' = (); = '/\s/'; = (, '',  mb_substr(, 0, 40,"UTF-8");

在此,提一下htmlspecialchars_decode函数和strip_tags函数的区别:

$str="<a href='http://www.manongjc.com'>码农教程'\"</a>";  
echo htmlspecialchars_decode($str);  
echo "<br/><br/>";  
echo strip_tags($str);

浏览器输出结果:

php (富文本)内容生成纯文本摘要(去除html标签) 第1张

审查元素你会发现:

php (富文本)内容生成纯文本摘要(去除html标签) 第2张

 

 

从结果可以看出htmlspecialchars_decode() 和strip_tags的区别如下:

区别一:

strip_tags函数使用来去除HTML标签的,而htmlspecialchars_decode并没有去除html标签,只是把标签转换为HTML实例,所以二者之间最大的区别是一个是删除掉HTML标签,一个是将html标签转换为其他字符。

 

区别二:

如果需要去除HTML标签的字符串里面的标签原来就有错,例如少了大于的符号,在使用strip_tags函数会传回错误,而htmlspecialchars_decode不会有错误出现,依然后转换为HTML实体。

 

区别三:

在防止XSS攻击时,一般建议使用htmlspecialchars_decode函数,因为strip_tags虽然可以删除HTML标签,但是它不会删除"或'。因此就算你使用了strip_tags,仍然需要使用htmlspecialchars_decode函数来过滤掉"或'

在表单提交或用户留言板里,如果你希望数据原始输出带浏览器,那么请使用htmlspecialchars_decode函数,不要使用strip_tags函数。

 

另外,在测试的时候发现了个很有趣的问题,在数据库里存的内容值是这样的:

$str = '&lt;p&gt;
  &lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;
  &lt;img src=&quot;/Upload/image/2018-02-09/20180209132853_70302.gif&quot; alt=&quot;&quot; /&gt; 
&lt;/p&gt;
&lt;p style=&quot;color:#6C6969;font-family:&amp;quot;font-size:14px;text-align:justify;background-color:#FFFFFF;&quot;&gt;
  彭于晏真得是用尽了全力,他苦练了八个月,几乎每天都进行10个小时以上的体操练习,为了保持八块腹肌的身材,他只吃水煮餐,不加任何调料。
&lt;/p&gt;
&lt;p style=&quot;color:#6C6969;font-family:&amp;quot;font-size:14px;text-align:justify;background-color:#FFFFFF;&quot;&gt;
  &lt;br /&gt;
&lt;/p&gt;';

如果需要去除html标签时,需要用htmlspecialchars_decode函数处理一下,在使用strip_tags函数去除html标签。

此篇文章由DurkBlue博客申请发布,转载吧请注明来处
文章投稿或转载声明

来源:DurkBlue版权归原作者所有,转载请保留出处。本站文章发布于 02-28
温馨提示:文章内容系作者个人观点,不代表DurkBlue博客对其观点赞同或支持。

赞(0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

阅读
分享

发表评论取消回复

快捷回复:
AddoilApplauseBadlaughBombCoffeeFabulousFacepalmFecesFrownHeyhaInsidiousKeepFightingNoProbPigHeadShockedSinistersmileSlapSocialSweatTolaughWatermelonWittyWowYeahYellowdog

评论列表 (暂无评论,389人围观)参与讨论

还没有评论,来说两句吧...