php - 检查youtube缩略图是否存在

标签 php youtube

如何不使用Google API知道是否存在分辨率最高的youtube缩略图?

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

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

最佳答案

我正在使用这个:

        $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';
        }

这使用curl检查标题。如果质量很好,“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()无法正常工作,因此要使页眉 curl 。

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

关于php - 检查youtube缩略图是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35795185/

相关文章:

php - 使用php填写下拉选择的值

Php 将 ipv6 转换为数字

php - OpenSSL 错误消息 : error:14095126 unexpected eof while reading

youtube - 在github上托管的Jekyll博客:如何插入youtube嵌入?

api - YouTube Google 数据 API (GDATA) 是否已弃用?

PHP + Youtube API - 如何允许用户将视频上传到我自己的 channel ?

javascript - 如何从youtube视频中删除广告

php连接microsoft access并使用密码

php - 查询似乎返回结果,但包含空值

php - 在 laravel 5 中编写自定义查询