/**
* 获取优化视频信息
* @param string $url 地址
* @return Array
*/
public static function getVideoInfo($url)
{
preg_match("#https?://v.youku.com/v_show/id_(?[a-z0-9_=-]+)#i", $url, $matches);
$cnt = count($matches);
if ($cnt>0){
$link = "http://v.youku.com/player/getPlayList/VideoIDS/{$matches['video_id']}/timezone/+08/version/5/source/out?password=&ran=2513&n=3";
}else{
return false;
}
$cexecute = self::getUrlContents($link);
if ($cexecute) {
$result = json_decode($cexecute,true);
$json = $result['data'][0];
$data['img'] = $json['logo']; // 视频缩略图
$data['title'] = $json['title']; //标题啦
$data['url'] = $url;
$data['swf'] = "http://player.youku.com/player.php/sid/{$matches['video_id']}/v.swf"; // 视频地址
return $data;
} else {
return false;
}
}
/**
* 获取乐视视频信息
* @param string $url 视频地址
* @return Array
*/
public static function getLetvInfo($url)
{
preg_match('|vplay/(.*).html|U',$url,$id);
if(empty($id))
{
return false;
}
$time=self::letu_(time());
$turl='http://api.letv.com/mms/out/video/playJson?id='.$id[1].'&platid=1&splatid=101&format=1&nextvid=20262893&tkey='.$time.'&domain=www.letv.com';
$u = self::getUrlContents($turl);
if($u){
$json=json_decode($u,true);
$data['title'] = $json['playurl']['title']; //视频标题
$data['img'] = $json['playurl']['pic']; //视频图片
$data['url'] = $url;
return $data;
}
return false;
}
public static function let_($value, $key)
{
$i = 0;
while ($i
$value = 2147483647 & $value >> 1 | ($value & 1) <
++$i;
}
return $value;
}
public static function letu_($stime)
{
$key = 773625421;
$value = self::let_($stime, $key % 13);
$value = $value ^ $key;
$value = self::let_($value, $key % 17);
return $value;
}
/**
* 处理乐视图片
*/
function getLevtThumb($path, $width=200, $height=100)
{
if(empty($path))
{
return false;
}
$ext = '';
$res = explode('thumb', $path);
$filepath = $res[0].'thumb';
$ext = strrchr($path, '.');
$path2 = explode('_', $res[1]);
$filepath = $filepath.$path2[0].'_'.$width.'_'.$height.$ext;
return $filepath;
}
/**
* 获取信息
* @param unknown_type $urlurl 地址
* @return unknown
* yang 2012-10-24 2012-11-9 remove file_get_contents
*/
public static function getUrlContents($url, $connectTimeout = 10, $timeout = 30)
{
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
//超时设置
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $connectTimeout); //链接超时
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout); //curl最长执行时间
$result = curl_exec($ch);
curl_close($ch);
if ($result === false)
{
logger::warning("get $url failed", 0);
}
logger::notice("get $url success");
return $result;
}