如何使用php通过url参数访问单个json帖子?

如何使用php通过url参数访问单个json帖子?,php,json,Php,Json,当我试图在没有任何框架或数据库的情况下使用PHP创建RESTFUL API时,我目前遇到了这个问题。我用PHP解析了JSON数据,但根据您在URL中键入的查询参数,在尝试访问某个帖子时遇到了问题 这是我的php代码: <?php header('Access-Control-Allow-Origin: *'); header ('Content-Type: application/json'); $jsondata = file_get_contents("credits.json")

当我试图在没有任何框架或数据库的情况下使用PHP创建RESTFUL API时,我目前遇到了这个问题。我用PHP解析了JSON数据,但根据您在URL中键入的查询参数,在尝试访问某个帖子时遇到了问题

这是我的php代码:

<?php 
header('Access-Control-Allow-Origin: *'); 
header ('Content-Type: application/json');
$jsondata = file_get_contents("credits.json");  
print_r(json_encode($jsondata));
?>
例如:若我的URL看起来像这样:,那个么键入只能访问具有特定id的单个帖子

$data = '{
"credits": [
      {
        "creditId": 123,
        "id": 1,
        "client": "Peter"
      },
      {
        "creditId": 789,
        "id": 2,
        "client": "Jonas"
      }
   ]
}';

$data = json_decode($data,true);

$row  = array_keys(array_combine(array_keys($data['credits']), array_column($data['credits'], 'id')),$_GET['id']);

if(isset($_GET['id'])){
    print_r($data['credits'][$row[0]]);
}
else{
    print_r($data);
}
第一步是将json解码为数组。然后使用php数组函数,我在多维数组中搜索您使用
$\u GET['id']
从url接收的值,并仅打印具有此id的块,否则打印整个数组

就像你问的那样,如果你不输入任何id,你的url将适用于所有结果,如果你在url中设置了id,则将适用于属于此id的特定结果

$data = '{
"credits": [
      {
        "creditId": 123,
        "id": 1,
        "client": "Peter"
      },
      {
        "creditId": 789,
        "id": 2,
        "client": "Jonas"
      }
   ]
}';

$data = json_decode($data,true);

$row  = array_keys(array_combine(array_keys($data['credits']), array_column($data['credits'], 'id')),$_GET['id']);

if(isset($_GET['id'])){
    print_r($data['credits'][$row[0]]);
}
else{
    print_r($data);
}