[英]Can't see result of application/json output with PHP
我正在用PHP构建一个非常简单的API,以便以application/json
格式从数据库中获取数据。
这是我的muscular-groups.php
文件:
<?php
include '../inc/db.php';
if (isset($_GET['id'])) {
$req = $pdo->prepare('SELECT * FROM muscular_groups WHERE id = ?');
$req->execute([$_GET['id']]);
$res = $req->fetchAll();
}
else {
$req = $pdo->prepare('SELECT * FROM muscular_groups');
$req->execute();
$res = $req->fetchAll();
}
header('Content-Type: application/json');
echo json_encode($res);
但是,当我想在服务器上访问它时(位于www.example.com/api/muscular-groups
),我会出现白屏,没有任何错误消息或错误日志。
奇怪的是:如果我替换header('Content-Type: application/json');
并echo json_encode($res);
与var_dump($res)
muscular-groups.php
var_dump($res)
一起出现在屏幕上。
PS:很奇怪,我的服务器上只有一个端点(例如: www.example.com/api/offers
)可以工作并显示json输出,这是代码:
<?php
include '../inc/db.php';
$req = $pdo->prepare('SELECT * FROM offers');
$req->execute();
$res = $req->fetchAll();
header('Content-Type: application/json');
echo json_encode($res);
我迷路了...
我终于明白了:问题是存在UTF-8字符,并且PDO没有配置为按原样提供它们。 所以$pdo->exec("SET NAMES 'utf8'");
救了我!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.