php html_entity_decode 标签没有闭合,php – strip_tags和html_entity_decode组合无法按预期工作...

我从昨天起就一直在与这个问题作斗争 – 不幸的是无济于事(并非完全没有,我找到了某种解决方法),经过一些研究和重读文档后,我仍然没有多少目瞪口呆和困惑.

让我们假设有一个丑陋的字符串,它已经具有正确的html编码的特殊字符.像这样 :

$exampleString = '<div id="dynamic2"> <div

id="iStoreProductLongDescription" class="iStoreBox">

<div class="iStoreBoxWrapper"> <div

class="iStoreBoxContent"> <p style="text-

align:justify;"> </p> <p style="text-

align:justify;"><span style="font-

size:large;"><span> Just a bunch of text here, at

the end. yedyedyed';

现在我想把这个字符串输出为一个简单,干净的字符串,所以首先我需要将它转换为html标签,然后剥离标签.所以我猜以下链应该有效:

$result = strip_tags(htmlspecialchars_decode($exampleString));

但事实并非如此,在网络的来源中echo $的结果是:

<div id="dynamic2"> <div id="iStoreProductLongDescription" class="iStoreBox"> <div class="iStoreBoxWrapper"> <div class="iStoreBoxContent"> <p style="text-align:justify;"> </p> <p style="text-align:justify;"><span style="font-size:large;"><span> Just a bunch o text here, at the end. yedyedyed

在用户输出中,html标签是可见的并且保持不变.但是,当我做这样的事情时:

$result = strip_tags(html_entity_decode(htmlspecialchars_decode($exampleString)));

然后它像魅力一样工作,并向用户输出所需的字符串,同样在web源中:

Just a bunch o text here, at the end. yedyedyed

问题是 – 为什么不

strip_tags(htmlspecialchars_decode($exampleString));

工作(我认为)它应该工作?

任何见解都非常感激.

干杯

解决方法:

如果你仔细观察,你会看到你有

&放大器;放大器; LT;并且它不是& lt;.

所以,你首先htmlspecialchars_decode只是转换

&放大器;放大器; LT;到& lt;

这肯定是一个特殊的实体,以后可以用第二次运行的htmlspecialchars_decode(或html_entity_decode)解码为

标签:php,html

来源: https://codeday.me/bug/20190609/1201958.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值