正如我在标题中所说,我通过 php 使用用于 twitch tv 和 own3d tv 的 json api 来获取我想要的流的信息。
这个问题是页面加载不快,事实上,有时 php 服务器会因为 30 秒或更长时间的功能而停止。错误:致命错误:超过 30 秒的最大执行时间
我正在使用在线指标:
function status($stream_id, $type){
if($type == 't'){
$chan = "http://api.justin.tv/api/stream/list.json?channel=" . $stream_id;
$json = file_get_contents($chan);
$exist = strpos($json, $stream_id);
if($exist) {
return true;
}else{
return false;
}
}else if($type == 'o'){
$url = 'http://api.own3d.tv/liveCheck.php?live_id=' . $stream_id;
$xml = simplexml_load_file($url);
$isLive=$xml->liveEvent->isLive;
if ($isLive == "true") {
return true;
}else{
return false;
}
}
}
我正在使用一个从流中获取一些信息的函数:
function api_stream_data($stream_id, $type){
$stream_id = sanitize($stream_id);
$type = sanitize($type);
if($type == 't'){
$streamData = json_decode(file_get_contents("http://api.justin.tv/api/stream/list.json?channel=$stream_id"),true);
$data = array(
'image'=>$streamData[0]['channel']['image_url_medium'],
'title'=>$streamData[0]['title'],
'limage'=>$streamData[0]['channel']['screen_cap_url_huge'],
'game'=>$streamData[0]['meta_game']
);
}else if($type == 'o'){
$streamData = json_decode(file_get_contents("http://api.own3d.tv/rest/live/list.json?liveid=$stream_id"),true);
$data = array(
'image'=>$streamData[0]['thumbnail_small'],
'title'=>$streamData[0]['live_name'],
'limage'=>$streamData[0]['thumbnail_large'],
'game'=>$streamData[0]['game_name']
);
}
return $data;
}
所有功能都运行良好,但问题是它们执行的时间......
有没有可能更快的方法?我已经看到其他一些加载速度非常快的站点示例,例如www.solomid.net和www.clgaming.net。
提前感谢您的帮助!
编辑: *已解决*感谢你们每一个人的帮助!我使用了一个将数据存储到数据库中的 cronjob,然后我只是进行了一个查询来请求它们,它每 5 分钟更新一次,但是,哦,好吧,总比没有好。