2012-03-24 13 views
0

私はPHPのシンプルなHTML DOMパーサーを使ってウェブページからテキストを取得しています。私はh1要素とタグがありませんテキストを取得する必要がありますPHPでテキストを取得するシンプルなHTML DOMパーサー

<html> 
<head> 
<title>title</title> 
<body> 
<div id="content"> 
<h1>HELLO</h1> 
Hello, world! 
</div> 
</body> 
</html> 

:私は操作する必要が ページのようなものです。

$html = file_get_html("remote_page.html"); 
foreach($html->find('#content') as $text){ 
echo "H1: ".$text->find('h1', 0)->plaintext; 
} 

しかし、他のテキスト: は、私はこのコードを使用h1を取得しますか? 私もforeachのにこれを試してみましたが、私は、フルテキストを取得:私はしかし、$text->find('text',2);あなたが探しているものを取得するように見えます...

+0

なぜ 'plaintext'メンバーを別のものを返すように展開していますか? – hakre

+0

「Hello、World!」だけが必要です。それは可能ですか? –

+0

私はそうだと思いますが、シンプルなHTML DOMパーサーは推奨できませんが、['DOMDocument'](http://php.net/DOMDocument)だけです。 ' - > nodeValue'となります。 – hakre

答えて

0

$text->plaintext; 

をそれはまたH1タグを返さテキストノードの量が不明なときにどれくらいうまくいくかわかりません。私は見続けるだろう。

+0

それは動作しません。ページに何も印刷されていません... –

0

@Peachyが指摘したようにあなたは、単に、strip_tags

<?php 
strip_tags($input, '<br>'); 
?> 
+0

なぜ '
'タグ? OPはすべてのタグが剥奪される必要があると言いました。 – NonCreature0714

+0

は空白のままにすることができます。 – Peachy

0

利用ストリップタグを使用してHTMLタグを取り除くことができます。しかし、2番目の引数<br>を渡すと、文字列はを無視します。<br>タグは不要です。あなたが好きなあなたのケースでは、

<?php 
    strip_tags($text); 
?> 

はあなただけcontent IDでコンテンツを選択していることを考えると、働くだろう。

関連する問題