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

标签 php mysql row html-entities 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 -> htmlentities("test");它就像魅力一样。 另外,如果我这样做:

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");

关于php - htmlentities 和 htmlspecialchars 拒绝处理字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10054513/

相关文章:

sql - 如何用SQL比较两行的值?

wpf - ListBox WPF- VirtualizingStackPanel 有两行,如 wrappanel

php - 无法在 Codeigniter 中接收 PayPal IPN 响应

php - php提交多个数组到mysql数据库

mysql - 如果值存在于另一个表中,如何更新 MYSQL 列?

php - 从 PHP 数组编写 PDO 搜索查询

ios - 重新加载带有动画的表格 View 单元格(Swift)

php - PHP 中的 Bing 搜索 API(获取下一个结果)无法正常工作

php - 无尽的 php 邮件循环

mysql - 如何使用 spring.jpa.hibernate.ddl-auto