繁体   English   中英

用PHP无法看到application / json输出的结果

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM