|
本帖最后由 jiteloozz 于 2022-12-15 20:30 编辑
尝试写了一个,仅做测试学习,欢迎指正。。。
- <?php
- header('Content-Type: text/json;charset=UTF-8');
- $url = 'https://v1-sc.miguvideo.com/vms-match/v6/staticcache/basic/match-list/normal-match-list/0/2221401/default/1/miguvideo';
- $data = json_decode(get_data($url));
- $nowdays = date('Ymd');
- $days =$data->body->days;
- $num=array_keys($days,$nowdays)[0];
- $prevdays=$days[$num-1];
- foreach ($data->body->matchList->$nowdays as $match){
- if($match->matchStatus==1){ //直播
- $pids[]=$match->pID;
- }
- if($match->matchStatus==2){ //回放
- $mids[]=$match->mgdbId;
- }
- }
- $ids=!empty($pids)?$pids:$mids;
- if(!empty($ids)){
- $playtype =in_array($_GET['type'],array_keys($ids),true)?$_GET['type']:array_rand($ids,1);
- $id=$ids[$playtype];
- }else{ //当日若无赛事,则获取前一天的回放ID
- foreach ($data->body->matchList->$prevdays as $match){
- if($match->matchStatus==2){
- $mids[]=$match->mgdbId;
- }
- }
- $id=$mids[array_rand($mids,1)];
- }
- if(strlen($id)>9){
- $bsurl='https://v1-sc.miguvideo.com/vms-match/v6/staticcache/basic/basic-data/'.$id.'/miguvideo';
- $info = json_decode(get_data($bsurl));
- $id=$info->body->multiPlayList->preList[0]->pID ;
- if($id==null){
- $id=$info->body->pID ;
- }
- }
- echo $id;
- //ID获取完毕,后面部分加入坛里的代码即可,此处省略
- function get_data($url){
- $headers = array(
- 'Accept-Encoding: gzip, deflate',
- 'Referer: https://www.miguvideo.com/mgs/website/prd/sportMatchDetail.html?competitionId=2221401',
- );
- $ch = curl_init();
- curl_setopt($ch, CURLOPT_URL, $url);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
- curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
- curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
- curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
- curl_setopt($ch, CURLOPT_ENCODING, 'gzip,deflate');
- $data = curl_exec($ch);
- curl_close($ch);
- return $data;
- }
复制代码 12.11 优化第19句代码:
$playtype =in_array($_GET['type'],array_keys($ids),true)?$_GET['type']:array_rand($ids,1);改为:
$playtype =isset($_GET['type'])&&!empty($ids[$_GET['type']])?$_GET['type']:array_rand($ids,1);
|
|