次のタグがあります
<div class="col *">Text</div>
*
何でもあります。
Simple HTML DOMcol
を使用して、(私の例のように) class 属性が含まれるすべての div タグを取得したいと考えています。
次のタグがあります
<div class="col *">Text</div>
*
何でもあります。
Simple HTML DOMcol
を使用して、(私の例のように) class 属性が含まれるすべての div タグを取得したいと考えています。
Simple HTML DOMには、特定の値やその他の値を含む属性を選択するためのメソッドが既に用意されているためです。例えば
$html->find("div[class*=col]", 0)->outertext
または、そのようdiv
に始まるノードを取得することもできますcol
$html->find("div[class^=col]", 0)->outertext
また、安全に保管するために、このサードパーティのプラグインで属性をフィルタリングする他のすべての方法を見つけることができます (ちなみに、に基づく DOM を処理するためのより良い方法がありますlibxml
。決定的なリストはここにあります) 。
[attribute]
- 指定された属性を持つ要素に一致します。[!attribute]
- 指定された属性を持たない要素に一致します。[attribute=value]
- 特定の値を持つ指定された属性を持つ要素に一致します。[attribute!=value]
- 指定された属性を持たない要素を特定の値と一致させます。[attribute^=value]
- 指定された属性を持ち、特定の値で始まる要素に一致します。[attribute$=value]
- 指定された属性を持ち、特定の値で終わる要素に一致します。[attribute*=value]
- 指定された属性を持ち、特定の値を含む要素に一致します。現時点ではテストする方法がありませんが、調べてみると(http://simplehtmldom.sourceforge.net/)、かなり単純なはずです。
$html = file_get_html('http://somesite.net');
foreach($html->find('div') as $div){
if stripos($div->class,"col"){
// this $div has a "col" class..
}
}
またはさらに簡単:
$html = file_get_html('http://somesite.net');
foreach($html->find('div.col') as $div){
// every $div has a "col" class..
}
それは機能しますか?