获取优酷视频缩略图logo

示例代码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);


?>
原文地址:https://www.cnblogs.com/520fyl/p/5482487.html