【发布时间】:2015-11-19 09:05:58
【问题描述】:
已经为返回 json 的 MarkersController.php 创建了一个路由,但是当我导航到该路由时出现以下错误:
未声明 HTML 文档的字符编码。如果文档包含 US-ASCII 范围之外的字符,则文档将在某些浏览器配置中呈现乱码。页面的字符编码必须在文档或传输协议中声明。
我的路线如下:
$app->get('/markers/?', function () use ($app) {
$controller = new UF\MarkersController($app);
return $controller->getMarkersJSON();
});
MarkersController.php
<!DOCTYPE html>
<html lang="en">
<head>
{% include 'components/head.html' %}
</head>
<body>
<?php
include('DB_INFO.php');
function getMarkersJSON(){
// Opens a connection to a MySQL server.
$connection = mysqli_connect($server, $username, $password);
if (!$connection) {
die('Not connected : ' . mysqli_error());}
// Sets the active MySQL database.
$db_selected = mysqli_select_db($database, $connection);
if (!$db_selected) {
die('Can\'t use db : ' . mysqli_error());}
// Selects all the rows in the markers table.
$query = "SELECT * FROM tester WHERE 1";
$result = mysqli_query($connection, $query);
if (!$result) {
die('Invalid query: '. mysqli_error());
}
$markers = array();
while ($row = mysqli_fetch_assoc($result)) {
//Assuming "lat" is column name in tester table. Please change it if required.
$lat= $rows['lat'];
//Assuming "lng" is column name in tester table. Please change it if required.
$lng= $rows['lng'];
$markers = array('lat' => $lat, 'lng' => $lng);
}
echo json_encode($markers);
}
?>
</body>
</html>
【问题讨论】:
-
哪个网络浏览器告诉你这个?
-
使用此代码,您可以输出带有 JSON 的 HTML。这是你真正想要的吗?您不希望其他程序读取 JSON 吗?
-
@mmm 不,只是希望它输出json,将在其他地方使用......
-
@fst104 所以摆脱 HTML...
-
@MonkeyZeus 删除 html 后仍然出现错误!