0

単純な html dom オブジェクトに以下が含まれているとします。

text1
<br />
<br />
<br />
text2
<br />

単純なhtml domを使用してテキストのいずれかを取得するにはどうすればよいですか?

4

3 に答える 3

1

すべてのプレーン テキスト要素を取得するには、次を使用できます。

$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が含まれます。

于 2012-05-27T01:49:28.417 に答える
0

jquery で $(document.body).contents(); を試してください。

これは、テキスト ノードとして text1 と text2 を持つノードの配列である必要があります。

于 2012-04-13T20:06:18.377 に答える