mysqli_query 结果为 JSON。如何应用htmlentities()?
mysqli_query result to JSON. How to apply htmlentities()?
我有这段代码,我用它来填充 select 和来自另一个 php 页面的 ajax 调用:
$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()
应用于整个数组。
您可以为此使用 array_walk_recursive
。
array_walk_recursive($arr, function(&$item, $key) {
$item = htmlentities($item);
});
试试这个,
echo json_encode($arr, JSON_UNESCAPED_UNICODE);
我有这段代码,我用它来填充 select 和来自另一个 php 页面的 ajax 调用:
$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()
应用于整个数组。
您可以为此使用 array_walk_recursive
。
array_walk_recursive($arr, function(&$item, $key) {
$item = htmlentities($item);
});
试试这个,
echo json_encode($arr, JSON_UNESCAPED_UNICODE);