你好我正在建立一个网站,其中我需要从不同的链接,如不同的视频网站或一般网站链接得到缩略图和描述的视频(如果视频),图像,描述的功能。
是否存在任何php类?为此taks请帮助我建议更好的解决方案提前感谢...
哦是的例子就像facebook链接标签
答案 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();
}
}
}