首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用php从给定的链接检索视频和图像

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

Stack Overflow用户
提问于 2011-02-14 18:13:22
回答 2查看 178关注 0票数 0

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

有没有php类存在?对于这个问题,请提前帮我提出更好的解决方案,谢谢…

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-02-14 18:20:27

首先,你很可能指的是Youtube和Vimeo等视频网站。

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

  • Vimeo
    • http://vimeo.com/api

Youtube

  • http://www.youtube.com/dev
  • http://code.google.com/apis/youtube/overview.html
  • http://code.google.com/apis/youtube/2.0/developers_guide_php.html

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

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

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

是否有任何本地类可以与所有这些网站进行交互?

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

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

你的基类应该看起来像这样:

代码语言:javascript
复制
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);
    }
}

然后,您将拥有一个驱动程序接口,如下所示:

代码语言:javascript
复制
interface IVideoDriver
{
    public function FetchVideoById($id);
    /*.
        Other required methods
    .*/
}

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

代码语言:javascript
复制
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();
        }
    }
}
票数 0
EN

Stack Overflow用户

发布于 2011-02-14 18:24:00

您应该使用curl o file_get_contents来检索您已经链接到的数据,然后通过mime-tipe进行标识(首先)。如果你得到了text/html mime提示,你应该从页面中提取所有的图像/对象。

但是,最好的方法是使用curl来模拟浏览器。也许您可以在http://phpclasses.org上找到该解决方案的一些类

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4990942

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档