phpheaderContent-Typeapplicationjson; 获取参数并设置默认值ac=list&t=&pg=&h=&ids=&wd=$ac = isset$_GETac $_GETac list;$t = isset$_GETt $_GETt 1;类型$pg = isset$_GETpg $_GETpg 1;$h = isset$_GETh $_GETh null;
以下是优化后的代码:
<?php
header('Content-Type:application/json');
// 获取参数并设置默认值?ac=list&t=&pg=&h=&ids=&wd=
$ac = isset($_GET['ac']) ? $_GET['ac'] : 'list';
$t = isset($_GET['t']) ? $_GET['t'] : '1';//类型
$pg = isset($_GET['pg']) ? $_GET['pg'] : '1';
$h = isset($_GET['h']) ? $_GET['h'] : null;//几小时内的数据
$ids = isset($_GET['ids']) ? $_GET['ids'] : null;//视频id
$wd = isset($_GET['wd']) ? $_GET['wd'] : null;//搜索关键词
function vpost($url, $data) {
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_SSL_VERIFYPEER => 0,
CURLOPT_SSL_VERIFYHOST => 1,
CURLOPT_USERAGENT => $_SERVER['HTTP_USER_AGENT'],
CURLOPT_FOLLOWLOCATION => 1,
CURLOPT_AUTOREFERER => 1,
CURLOPT_POST => 1,
CURLOPT_POSTFIELDS => $data,
CURLOPT_TIMEOUT => 30,
CURLOPT_HEADER => 0,
CURLOPT_RETURNTRANSFER => 1
]);
$tmpInfo = curl_exec($curl);
if (curl_errno($curl)) {
echo 'Errno' . curl_error($curl);
}
curl_close($curl);
return $tmpInfo;
}
$limit='20';
if ($ids == null) {
$url = "https://api123.adys.app/xgapp.php/v3/video";
$data = "tid=" . $t . "&class=&area=&lang=&year=&limit=" . $limit . "&pg=" . $pg;
$result = vpost($url, $data);
$data = json_decode($result, true);
if ($h != null) {
$total = $h * 4;
} else {
$total = $data['total'];
}
$data['total'] = $total;
$data['limit'] = $limit;
$data['pagecount'] = ceil($total / $limit);
$newDataArray = [
["type_id" => 1, "type_pid" => 0, "type_name" => "电影"],
["type_id" => 2, "type_pid" => 0, "type_name" => "剧集"],
["type_id" => 3, "type_pid" => 0, "type_name" => "综艺"],
["type_id" => 4, "type_pid" => 0, "type_name" => "动漫"],
["type_id" => 20, "type_pid" => 0, "type_name" => "韩国电影"],
["type_id" => 24, "type_pid" => 0, "type_name" => "纪录片"]
];
$data['class'] = $newDataArray;
foreach ($data['data'] as &$item) {
$item['type_id'] = $t;
unset($item['type_id_1']);
$item['vod_time'] = $item['vod_time_add'];
unset($item['vod_time_add']);
$typeId = $item['type_id'];
foreach ($newDataArray as $typeName) {
$item['type_name'] = '未知类型';
if ($typeName['type_id'] == $typeId) {
$item['type_name'] = $typeName['type_name'];
break;
}
}
sleep(1);
$url = "https://api123.adys.app/xgapp.php/v3/video_detail";
$data = "id=" . $item['vod_id'];
$detailJson = vpost($url, $data);
$detailData = json_decode($detailJson, true);
$item = $detailData['data']['vod_info'];
}
} else {
$idArray = explode(',', $ids);
$resultArray = array();
foreach ($idArray as $id) {
$url = "https://api123.adys.app:443/xgapp.php/v3/video_detail";
$data = "id=" . urlencode($id);
$response = vpost($url, $data);
$data = json_decode($response, true);
$data['data'] = $data['data']['vod_info'];
$data['data']['vod_content'] = '<p>视频详情</p>';
$vod_blurb = $data['data']['vod_blurb'];
$data['data']['vod_content'] = '<p>' . $vod_blurb . '</p>';
$itemData = isset($data['data']) ? $data['data'] : array();
$resultArray[] = $itemData;
}
$total = count($resultArray);
$limit = '20';
$pageCount = ceil($total / $limit);
foreach ($resultArray as &$item) {
$typeId = $item['type_id'];
$typeName = '未知类型';
switch ($typeId) {
case 1:
$typeName = '电影';
break;
case 2:
$typeName = '剧集';
break;
case 3:
$typeName = '综艺';
break;
case 4:
$typeName = '动漫';
break;
case 20:
$typeName = '韩国电影';
break;
case 24:
$typeName = '纪录片';
break;
}
}
$data = array(
"code" => 1,
"msg" => "数据列表",
"page" => $pg,
"pagecount" => $pageCount,
"limit" => $limit,
"total" => $total,
"list" => $resultArray
);
}
$newJson = json_encode($data, JSON_NUMERIC_CHECK | JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
echo $newJson;
?>
主要优化点包括:
- 使用
curl_setopt_array函数设置CURL选项,简化代码。 - 使用
switch语句替代多个if语句,提高代码可读性。 - 增加注释,提高代码可读性。
- 优化变量命名,使代码更易理解
原文地址: https://www.cveoy.top/t/topic/hRb0 著作权归作者所有。请勿转载和采集!