Php 如何使用Zend_Dom_查询来获取元数据

Php 如何使用Zend_Dom_查询来获取元数据,php,zend-framework,web-scraping,zend-dom-query,Php,Zend Framework,Web Scraping,Zend Dom Query,使用Zend_Dom_查询,我想从HTML字符串中检索元数据 要检索链接,您只需进行如下查询: $results = $dom->query('a'); //Where $dom is your html string 不幸的是,这似乎不适用于meta $results = $dom->query('meta'); //doesn't work 如何检索元数据,然后按其“属性”属性进行过滤 我正在寻找的一个例子: public function me

使用Zend_Dom_查询,我想从HTML字符串中检索元数据

要检索链接,您只需进行如下查询:

$results = $dom->query('a'); //Where $dom is your html string
不幸的是,这似乎不适用于meta

$results = $dom->query('meta'); //doesn't work
如何检索元数据,然后按其“属性”属性进行过滤

我正在寻找的一个例子:

               public function meta($dom)
{
    $results = $dom->query('meta'); //This is not a correct query (does anyone have an alternative?)
    $links = array();
    foreach ($results as $index => $result) {
        if ($result->getAttribute('property') == 'title') { //find <meta property="title"
            echo $result->getAttribute('content') . '<br />'; //echo the content attribute of the title
        }
    }
    return $results;
}
公共函数元($dom)
{
$results=$dom->query('meta');//这不是一个正确的查询(有人有其他选择吗?)
$links=array();
foreach($results作为$index=>$result){
如果($result->getAttribute('property')=='title'){//find getAttribute('content')。
;//回显标题的content属性 } } 返回$results; }
一旦查询正确,此代码将起作用。然而,我想更进一步,直接查询
,而不是检索所有元并循环以获得正确的元

对于使用zend_dom_查询获取所有元数据,或者(更重要的是)查询仅接收property==title的元数据,我们将不胜感激

感谢中的元标记不是有效的CSS选择器,因此您必须使用
$dom->querypath($xPathQuery)
方法,而不是
$dom->query()

可能是这样的:

$dom->queryXpath('/html/head');
我不确定要使用的确切查询字符串,但这就是我的想法

如果您有url,请尝试以下操作:
$metatagarray=get_meta_标记($url)
如果(!empty($metatagarray[“关键字]))
$metakey=$metatagarray[“关键字”]
如果(!empty($metatagarray[“description”])
$metadesc=$metatagarray[“说明”]