単純な html dom オブジェクトに以下が含まれているとします。
text1
<br />
<br />
<br />
text2
<br />
単純なhtml domを使用してテキストのいずれかを取得するにはどうすればよいですか?
単純な html dom オブジェクトに以下が含まれているとします。
text1
<br />
<br />
<br />
text2
<br />
単純なhtml domを使用してテキストのいずれかを取得するにはどうすればよいですか?
すべてのプレーン テキスト要素を取得するには、次を使用できます。
$string="text1
<br />
<br />
<br />
text2
<br />";
$html = str_get_html($string);
$texts=$html->find('text');
foreach($texts as $elem_index => $text){
echo $elem_index."=>".$text."<br>";
}
出力は次のようになります。
0=>text1
1=>
2=>
3=> text2
foreach ループでは、必要なフィルタリングを行うことができます。たとえば、特定の文字列に一致するテキストを見つけようとしている場合は、次のように簡単に実行できます。
if (trim($text) == "text2")
//do something
したがって、見つかったテキストを置き換えたい場合は、次を使用できます。
if (trim($text) == "text2")
$texts[$elem_index]->innertext = "something else";
$html->save();
$html
新しいhtmlが含まれます。
jquery で $(document.body).contents(); を試してください。
これは、テキスト ノードとして text1 と text2 を持つノードの配列である必要があります。