-2
<link rel='canonical' href='http://test.com/asdfsdf/sdf/' />

Domを使用して正規のhref値を取得する必要があります。どうすればよいですか?

4

1 に答える 1

4

これを行うには複数の方法があります。

XMLの使用:

<?php

$html = "<link rel='canonical' href='http://test.com/asdfsdf/sdf/' />";

$xml  = simplexml_load_string($html);
$attr = $xml->attributes();
print_r($attr);

?>

出力:

SimpleXMLElement Object
(
    [@attributes] => Array
        (
            [rel] => canonical
            [href] => http://test.com/asdfsdf/sdf/
        )

)

または、Domを使用します。

<?php

$html = "<link rel='canonical' href='http://test.com/asdfsdf/sdf/' />";

$dom = new DOMDocument;
$dom->loadHTML($html);
$nodes = $dom->getElementsByTagName('link');
foreach ($nodes as $node)
{
    if ($node->getAttribute('rel') === 'canonical')
    {
        echo($node->getAttribute('href'));
    }
}

?>

出力:

http://test.com/asdfsdf/sdf/

どちらの例でも、HTMLファイル全体を解析する場合はより多くのコードが必要ですが、必要な構造のほとんどを示しています。

この回答Domのドキュメントから変更されたコード。

于 2012-07-08T12:27:09.190 に答える