1

Zend_Dom_Queryを使用して、HTML文字列からメタデータを取得したいと思います。

リンクを取得するには、次のように簡単にクエリを実行できます。

$results = $dom->query('a'); //Where $dom is your html string

残念ながら、これはメタでは機能しないようです

$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;
}

このコードは、クエリが正しければ機能します。<meta property="title" content="This is the Title" />ただし、すべてのメタを取得してループして正しいメタを取得するのではなく、さらに一歩進んで直接クエリを実行したいと思います。

zend_dom_queryを使用してすべてのメタデータを取得するか、(さらに重要なことに)property==titleのメタデータのみを受信するようにクエリを実行することで助けがあれば幸いです。

ありがとう

4

2 に答える 2

0

メタタグ有効なCSSセレクターではないため、の$dom->queryXpath($xPathQuery)代わりにメソッドを使用する必要があり$dom->query()ます。

多分次のようなものです:

$dom->queryXpath('/html/head');

使用する正確なクエリ文字列はわかりませんが、これがアイデアです。

Zend_Dom_Queryの操作理論。

于 2012-09-27T14:26:52.877 に答える
0

URLを持っている場合は、これを試してください。


$ metatagarray = get_meta_tags($ url);
if(!empty($ metatagarray ["keywords"]))
$ metakey = $ metatagarray ["keywords"];
if(!empty($ metatagarray ["description"]))
$ metadesc = $ metatagarray ["description"];

于 2013-06-13T03:50:10.233 に答える