Zend Framework - 在网站上搜索文本

时间:2011-11-16 13:23:29

标签: php parsing fopen zend-framework

我:Zend Framework新手

目标:搜索特定YouTube视频的观看次数

为了简单起见,我应该只使用youtube api获取视频,然后在页面中搜索“viewcount”一词并从中获取数据。 示例:“http://gdata.youtube.com/feeds/api/videos/ZDG90nkL79c”

我的问题是如何在Zend Framework中执行此操作?我已经使用fopenpreg_match在PHP中做过类似的事情。我尝试在线搜索解决方案,但没有找到任何好的例子。我认为我应该使用的是Zend_HTTP_Client,但我无法弄明白。

如果有人可以给我一些关于如何打开页面并寻找单词的代码,我将非常感激。

谢谢!

1 个答案:

答案 0 :(得分:0)

使用Zend_Gdata_Youtube:

$yt = new Zend_Gdata_Youtube(null, // can pass instance of Zend_Http_Client
                             'Company-AppName-Version', // name of your app
                             $clientId, // issued by the YouTube dashboard
                             $developerKey // issued by the YouTube dashboard
                            );
$videoEntry = $yt->getVideoEntry('ZDG90nkL79c');
$viewCount  = $videoEntry->getVideoViewCount();

这种方式可能更容易,但我不确定你还想要它做什么。

使用Zend_Http_Client和DomDocument

$hc = new Zend_Http_Client(
            'http://gdata.youtube.com/feeds/api/videos/ZDG90nkL79c')
$response = $hc->request();

if ($response->getStatus() == 200) {
    $domDoc = new DomDocument();
    $domDoc->loadXml($response->getBody());
    $stats = $domDoc
                ->getElementsByTagNameNS(
                    'http://gdata.youtube.com/schemas/2007',
                    'statistics'
                    )
                ->item(0); // Should be just one item in DomNodeList

    $viewCount = $stats->attributes->getNamedItem('viewCount')->nodeValue;
}

如果XML中存在错误或预期的节点不存在,则第二个错误将严重失败。