示例代码HTML:
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <form action = "./test.php" method = "post"> <input type = "text" placeholder = "输入视频链接 " name = "link"> <input type = "submit" value = "提交"> </form> <img src = "<?php echo $arr;?>" /> </body> </html>
示例代码PHP:
<?php function get_youku($url) { // 这段正则是来获取优酷的id,出处在 /wp-content/languages/zh_CN.php,同样56网、土豆都可以找到 preg_match("#https?://v.youku.com/v_show/id_(?<video_id>[a-z0-9_=-]+)#i", $url, $matches); //正则找到视频中的vid // var_dump($matches); $cnt = count($matches); if ($cnt>0){ $link = "http://play.youku.com/play/get.json?vid={$matches['video_id']}&ct=10"; // $link = "http://play.youku.com/play/get.json?vid=XMTI4ODY0NDk2OA==&ct=10&ran=1951"; //请求接口 正则匹配时,多了== 请求时报错 }else{ return false; } // 这一段是用来解析json数据,如果想跨域用js来取,这个表示压力好大 $ch=@curl_init($link); @curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $cexecute=@curl_exec($ch); @curl_close($ch); // $json = file_get_contents($link); // $arr = json_decode($json,true); // var_dump($arr); if ($cexecute) { $result = json_decode($cexecute,true); $json = $result['data']['video']; $data['img'] = $json['logo']; // 视频缩略图 $data['title'] = $json['title']; //标题啦 $data['url'] = $url; return $data; } else { return false; } } // var_dump($_POST['link']); $res = get_youku($_POST['link']); $arr = $res['img']; // var_dump($res); ?>