使用php从给定链接检索视频和图像

时间:2011-02-14 10:13:22

标签: php

你好我正在建立一个网站,其中我需要从不同的链接,如不同的视频网站或一般网站链接得到缩略图和描述的视频(如果视频),图像,描述的功能。

是否存在任何php类?为此taks请帮助我建议更好的解决方案提前感谢...

哦是的例子就像facebook链接标签

2 个答案:

答案 0 :(得分:1)

你应该使用curl o file_get_contents来检索你链接到的数据,然后通过mime-tipe识别(第一个)。 如果你有text / html mime tipe,你应该从页面中提取所有图像/对象。

但最好的方法是使用curl来模拟浏览器。 也许您可以在http://phpclasses.org

上找到该解决方案的一些课程

答案 1 :(得分:0)

首先,您很可能会引用Youtube和Vimeo等视频网站。

两个网站都有一个API功能,您可以使用它来获取视频信息:

对于youtube api请求中的广泛frameowrk,您可以使用Zend Data:http://framework.zend.com/download/gdata

对于Vimeo PHP库使用https://github.com/vimeo/vimeo-php-lib

大多数其他专业网站都会有某种API,而且很可能是它们的库。


  

是否存在与所有这些网站互动的本地课程?

简短回答是否定的,所有API都不同,因此没有一个类可以成功地与所有网站互动。

您需要做的是创建一个基于驱动程序的包来处理这个问题。

你的基类看起来像这样:

class VideoAPI
{
    private $driver;
    public function __construct($driver)
    {
        require_once "drivers/" . $driver . ".class.php";
        $driverClass = $driver . "_Driver";

        $this->driver = new $driverClass;
    }

    public function FetchVideoById($id)
    {
        return $this->driver->FetchVideoById($id);
    }
}

然后你会为你的司机设置一个界面:

interface IVideoDriver
{
    public function FetchVideoById($id);
    /*.
        Other required methods
    .*/
}

并且每个驱动程序都会实现该方法并扩展请求类,如下所示:

class Youtube_Driver extends VideoRequest implements IVideoDriver
{
    protected $base_url = "http://gdata.youtube.com"
    public function FetchVideoById($id)
    {
        $Request = $this->request($this->base_url . "/feeds/api/videos/",array(
            "format" => "json",
            "api_id" => $this->config->api_keys->youtube
        ));

        if($Request->status() == VideoRequest::STATUS_OK)
        {
             return $Request->Response();
        }
    }
}