10

HTML からすべてのタグの間の配列内のテキストをフェッチしたいのです<span> </span>が、このコードを試してみましたが、1 つのオカレンスのみが返されます。

preg_match('/<span>(.+?)<\/span>/is', $row['tbl_highlighted_icon_content'], $matches);

echo $matches[1]; 

私のHTML:

<span>The wish to</span> be unfairly treated is a compromise attempt that would COMBINE attack <span>and innocen</span>ce.  Who can combine the wholly incompatible, and make a unity  of what can NEVER j<span>oin? Walk </span>you the gentle way,

私のコードは span タグを 1 回だけ返しますが、HTML のすべての span タグからすべてのテキストを php 配列の形式で取得したいと考えています。

4

4 に答える 4

2

同じものを使用するpreg_match_all()と、$matches 配列内のすべての出現が返されます

http://php.net/manual/en/function.preg-match-all.php

于 2013-04-15T12:56:48.830 に答える
0

サードパーティのコンポーネントを使用してもかまわない場合は、 Symfony の DomCrawlerコンポーネントを紹介したいと思います。HTML/XHTML/XML ファイルを解析し、ノード間を移動するための非常に簡単な方法です。

CSS セレクターを使用することもできます。コードは次のようになります。

$crawler = new Crawler($html);
$spans = $crawler->filter("span");
echo $spans[1]->getText();;

完全な HTML/XML ドキュメントを用意する必要さえありません<span>...</span>。コードの一部だけを割り当てれば、問題なく動作します。

于 2013-04-15T13:10:18.643 に答える