2016-03-04 67 views
1

如何知道在不使用Google API的情况下是否存在具有最高分辨率的YouTube缩略图?检查youtube缩略图是否存在

例如,带有代码的视频不具有最大分辨率。如果我们打开网址:http://i1.ytimg.com/vi/4rlR7EncGD0/maxresdefault.jpg,我们可以看到灰色的矩形,这意味着没有缩略图,对吧?

我有的代码,只是检查文件是否存在。如果文件存在,它会显示在网站内。不幸的是,这对于那些“灰色矩形”不起作用。

回答

1

我'使用该:

 $item = '4rlR7EncGD0'; 
     $MaxResURL = 'https://i1.ytimg.com/vi/'.$item.'/maxresdefault.jpg'; 
     //print $MaxResURL; 

     $curl = curl_init(); 
     curl_setopt_array($curl, array( 
     CURLOPT_URL => $MaxResURL, 
     CURLOPT_HEADER => true, 
     CURLOPT_RETURNTRANSFER => true, 
     CURLOPT_NOBODY => true)); 

     $header = explode("\n", curl_exec($curl)); 
     curl_close($curl); 

     //var_dump($header);   

     //If maxres image exists do something with it. 
     if (strpos($header[0], '200') !== false) {  
      print $MaxResURL; 
     }else{ 
      print 'Some Other IMG'; 
     } 

使用卷曲该检查头。如果它是好的'200'打印网址,当然你可以显示图像或你特别需要做的,我用这个来添加Facebook和Twitter元标记。

我使用的代码从这个回答:

How do I check if a string contains a specific word in PHP?要检查200头

而且

PHP get_headers not working?要,因为我使用WordPress获得头女巫卷曲,由于某种原因get_headers()不起作用。

我不是专家,我不知道这是否是解决此问题的最佳方法,但此代码对我有用,希望它有帮助。