-1

ソースとして HTML ファイルがあり、次のコードのインスタンスがいくつか含まれています。

<span itemprop="name">NAME</span>

NAME の部分は常に別のものに変化します。

<span itemprop="name">HTMLコードを通過し、「 」と「」の間のすべての名前を抽出</span>して配列に入れるPHPコードを作成するにはどうすればよいですか?

私はこのコードを試しましたが、うまくいきません:

$prev=$html;

for($i=0; $i<10; $i++){
     $current = explode('<span itemprop="name">', $prev);
     $cur = explode('</span>', $current[1]);
     $names[] =  $cur[0];

     $prev = $current[2];
}

print_r($names);
4

4 に答える 4

0

おそらく、計画した方法よりも php DOMDocumentまたは単純な php domまたは任意の DOM 代表を使用する方がよいでしょう。

動作する DOMDocument コードの例を次に示します。

    $doc = new DOMDocument();
    $doc->loadHTML('<html><body><span itemprop="name">1</span><span itemprop="name">2</span><span itemprop="name">3</span></body></html>');
    $finder = new DomXPath($doc);

    $nodes = $finder->query("//*[contains(@itemprop, 'name')]");

    foreach($nodes as $node)
    {   
        echo $node->nodeValue . '<br />';
    }

出力:

1
2
3
于 2013-09-13T14:51:38.157 に答える