微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – htmlentities和htmlspecialchars拒绝处理字符串

自从Debian盒子上的PHP5 5.4.0-3上次更新以来,我注意到有些页面有空字段,MysqL数据库中的文本应该是空字段.

我玩了一下,发现了问题.

<?PHP
$scselect = MysqL_query("SELECT `name` FROM `forum_threads` WHERE `forum` = '1' ORDER BY `timestamp` DESC") or exit((MysqL_error()));
    while ($scrow=MysqL_fetch_array($scselect))
    {
        var_dump($scrow['name']);
        var_dump(htmlentities($scrow['name']));
    }
?>

奇怪的是这是什么印刷:

string(18) "PHP hu3: the Forum"
string(0) ""
string(18) "PHP hu2 score-rule"
string(0) ""
string(6) "PHP hu"
string(0) ""
string(15) "HU 8: Binarycnt"
string(0) ""

但如果我使用硬编码内容的htmlentities – >ヶ辆( “测试”);它就像魅力一样.
如果我这样做:

var_dump("a".$scrow['name']);

它还说

string(0) ""

但它变得陌生.如果我使用htmlentities或htmlspecialchars与数据库中的任何其他变量,它的工作原理非常完美.

var_dump(htmlspecialchars($scrow['ID'])); // prints for example string(2) "87"

这可能是什么原因?

解决方法:

试试这个 :

htmlentities($scrow['name'], ENT_QUOTES | ENT_IGnorE, "UTF-8");

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐