2016-08-18 32 views
-5

现在,我使用PHP时遇到了一个奇怪的行为:htmlentities在调用时似乎不起作用;因此,当我做的:只有当被调用两次时,htmlentities才能在浏览器上工作

echo htmlentities("<iframe>"); 

浏览器输出字符串参数转义状态,即<iframe>

然而,当我调用该函数的两倍,它的工作原理:

echo htmlentities(htmlentities("<iframe>")); 

给我:<iframe>

我注意到怪异的行为from this answer当用户表达了同样的困惑。

现在我有两个问题使用这个“答案有效”:首先,我知道这是一个奇怪的行为,并不能保证这种奇怪将被复制(我希望它不是!)当我的代码导出到另一台服务器。其次,为什么这种行为在第一位?

所以我的问题:我很想知道这种行为的起源以及如何处理它。

这是一个耻辱很多你将无法验证我的问题,因为我在我的本地主机上工作,并且htmlentities在其他服务器上正常工作。

+1

这不仅仅适用于PHP 7,我在5.6.23上得到了和你一样的结果,所以这个结果必须更进一步。 –

+3

查看源代码,你会看到你正在得到正确的结果。 – PHPglue

+1

“浏览器输出未转义的字符串参数,即