|
|
发表于 2025-12-25 22:08:56
|
显示全部楼层
<?php
// 初始化 cURL 请求
$curl = curl_init();
// 设置 cURL 请求选项
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.vtibet.cn/xizangmobileinf/rest/xz/cardgroups',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => 'appcommon=%7B%22adid%22%3A%225a78345cba65245f%22%2C%22cctvId%22%3A%22%22%2C%22av%22%3A%222.2.3%22%2C%22selfSetRecommend%22%3A%221%22%2C%22an%22%3A%22%E7%8F%A0%E5%B3%B0%E4%BA%91%22%2C%22userId%22%3A%22%22%2C%22ap%22%3A%22android_phone%22%7D&json=%7B%22cardgroups%22%3A%22LIVECAST%22%2C%22paging%22%3A%7B%22page_no%22%3A%221%22%2C%22page_size%22%3A%2210%22%7D%2C%22version%22%3A%222.2.3%22%7D',
CURLOPT_HTTPHEADER => [
'User-Agent: Mozilla/5.0 (Linux; U; Android 12; zh-cn; SM-G9750 Build/SP1A.210812.016) AppleWebKit/533.1 (KHTML, like Gecko) Version/5.0 Mobile Safari/533.1',
'Connection: Keep-Alive',
'Accept-Encoding: gzip',
'Content-Type: application/x-www-form-urlencoded',
'Accept-Language: zh-CN,zh;q=0.8',
'Cache-Control: no-cache',
],
]);
// 执行 cURL 请求并获取响应
$response = curl_exec($curl);
$err = curl_error($curl);
// 关闭 cURL 请求
curl_close($curl);
// 检查是否有错误
if ($err) {
echo 'cURL Error #:' . $err;
} else {
// 解析返回的 JSON 数据
$data = json_decode($response, true);
// 检查返回的数据中是否包含 cardgroups
if (isset($data['cardgroups']) && is_array($data['cardgroups'])) {
// 定义一个数组用于存储有效的链接
$videoUrls = [];
// 遍历所有的 cardgroups
foreach ($data['cardgroups'] as $group) {
// 遍历每个 group 中的 cards
foreach ($group['cards'] as $card) {
// 检查 video.url 字段是否存在
if (isset($card['video']['url']) && !empty($card['video']['url'])) {
$videoUrls[] = $card['video']['url']; // 收集所有有效的 URL
}
}
}
// 获取用户传递的 id 参数(默认 id 为 0)
$id = isset($_GET['id']) ? intval($_GET['id']) : 0;
// 判断提取到的视频链接数组是否为空
if (!empty($videoUrls)) {
// 判断 id 是否在有效范围内
if ($id >= 0 && $id < count($videoUrls)) {
// 根据 id 值重定向到对应的视频链接
header("Location: " . $videoUrls[$id]);
exit();
} else {
// 如果 id 超出范围,返回错误提示
echo 'Invalid ID. Please provide a valid ID between 0 and ' . (count($videoUrls) - 1);
}
} else {
// 如果没有提取到有效的视频链接
echo 'No valid video URLs found in the response.';
}
} else {
echo 'No cardgroups found in the response data.';
}
}
?> |
|