mysqli_query结果为JSON。如何申请htmlentities()?

时间:2015-04-16 13:37:00

标签: php json character-encoding html-entities

我有这个代码用于从另一个php页面填充带有ajax调用的select:

$id = $_GET["id"];
$sql = "SELECT town_name, 
               town_code 
        FROM   tbtown 
        WHERE  area_id = '$id' 
        ORDER BY town_name";
$result = mysqli_query($conn, $sql);
$arr = array();
while ($row = mysqli_fetch_array($result, MYSQL_ASSOC)) {
    $arr[] = $row;
}
echo json_encode($arr);

某些town_name列值包含è ì等字符,我发现在这些情况下json_encode()函数将该值设置为NULL。

我还发现应用于每个数组值的htmlentities()函数可以解决问题。

我想知道是否有一种简单的方法可以将htmlentities()应用于整个数组。

2 个答案:

答案 0 :(得分:1)

您可以使用array_walk_recursive

array_walk_recursive($arr, function(&$item, $key) {
    $item = htmlentities($item);
});

答案 1 :(得分:0)

尝试这个,

echo json_encode($arr, JSON_UNESCAPED_UNICODE);