PHP如何从VimeoAPI中提取JSON数据并将其打印到XML文件中?
我调用下面的Vimeo API来返回特定视频下的所有视频。我试图实现的是只提取我想要的特定JSON数据。“uri”和“name”是我唯一需要的数据。我如何将它打印到XML文件中 顺便说一句,这是我的尝试:PHP如何从VimeoAPI中提取JSON数据并将其打印到XML文件中?,php,json,xml,api,vimeo,Php,Json,Xml,Api,Vimeo,我调用下面的Vimeo API来返回特定视频下的所有视频。我试图实现的是只提取我想要的特定JSON数据。“uri”和“name”是我唯一需要的数据。我如何将它打印到XML文件中 顺便说一句,这是我的尝试: <!DOCTYPE html> <html lang="en" dir="ltr"> <head> <meta charset="utf-8"> <title&
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<?PHP
header('Content-Type: text/html; charset=utf-8');
require ("vendor/autoload.php");
use Vimeo\Vimeo;
$client = new Vimeo("{client_id}", "{client_secret}", "{access_token}");
$user_id = '121265018';
$project_id = '2370434';
$response = $client-
>request("/users/$user_id/projects/$project_id/videos");
var_dump($response);
if ($response['status'] === 200) {
$videos = [];
foreach ($response['data'] as $data) {
$result = [
//'uri' => $data['uri'],
'name' => $data['name'],
//'pictures' => $data['pictures'],
];
$videos[] = $result;
}
echo json_encode($videos, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
} else {
echo json_encode($response['body']['error']);
}
?>
我想你应该换一条线
$jsondata = file_get_contents($response);
与
您只需将这三件事保存在一个单独的数组中,然后以所需的格式打印 更新 您的所有视频都有一系列数据。sow您需要使用foreach获取所有视频的uri、名称和图片,并保存到另一个数组中
<body>
<?PHP
header('Content-Type: text/html; charset=utf-8');
require("vendor/autoload.php");
use Vimeo\Vimeo;
$client = new Vimeo("{client_id}", "{client_secret}", "{access_token}");
$user_id = '121265018';
$project_id = '2370434';
$response = $client->request("/users/$user_id/projects/$project_id/videos");
if ($response['status'] === 200) {
$videos = [];
foreach ($response['body']['data'] as $data) {
$result = [
'uri' => $data['uri'],
'name' => $data['name'],
'pictures' => $data['pictures'],
];
$videos[] = $result;
}
echo json_encode($videos, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
} else {
echo json_encode($response['body']['error']);
}
?>
</body>
Parse error:syntax error,在$json=json_decode($jsondata,true)行的D:\XAMPP\htdocs\MyAPI\GP.php中出现意外的“$json”(T_变量);添加在新行末尾添加$jsondata我认为这是语法错误。因为即使在我加上;它在第29行标题('Content-Type:application/json')
中的D:\XAMPP\htdocs\MyAPI\GP.php中显示了解析错误:语法错误,意外的“;”(T_字符串)开始时毫无意义。此时您已经创建了HTML输出。注意:未定义索引:第27行的D:\XAMPP\htdocs\MyAPI\GP.php中的uri注意:第28行的D:\XAMPP\htdocs\MyAPI\GP.php中的名称未定义索引:第29行的D:\XAMPP\htdocs\MyAPI\GP.php中的图片{“uri”:null,“name”:null,“pictures”:null}是否是uri,名称和图片在“数据”数组下??我已经用实际的API JSON数据更新了我的问题,以显示u。但是我尝试了两种方法1)“uri”=>$response['data']['uri'],2)“uri”=>$response['body']['data']['uri'],但看起来它不起作用:(你需要知道你想要的密钥在哪里,给var\u dump($resquest);
并查找您的密钥位置,然后保存到另一个数组中。根据上面对我的代码所做的更改,您的意思是我应该使用var_dump来输出我的JSON数组?var_dump($response)??
<body>
<?PHP
header('Content-Type: text/html; charset=utf-8');
require("vendor/autoload.php");
use Vimeo\Vimeo;
$client = new Vimeo("{client_id}", "{client_secret}", "{access_token}");
$user_id = '121265018';
$project_id = '2370434';
$response = $client->request("/users/$user_id/projects/$project_id/videos");
if ($response['status'] === 200) {
$videos = [];
foreach ($response['body']['data'] as $data) {
$result = [
'uri' => $data['uri'],
'name' => $data['name'],
'pictures' => $data['pictures'],
];
$videos[] = $result;
}
echo json_encode($videos, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
} else {
echo json_encode($response['body']['error']);
}
?>
</body>