2016-06-15 5 views
1

のプロパティを取得しようとするとエラーになります私は、ウェブサイトからテキストを取得するためにsimple_html_domを使用していますが、それは、ウェブサイトがこれを持っている私に単純なHTMLのDOMのfindは非オブジェクト

Notice: Trying to get property of non-object in C:\wamp64\www\fetch.php on line 6 

を与えます。

<div> 
<div class="info">number: (IUL)306/306/2016/68</div> 
<div class="info">published date: 14 june 2016</div> 
<div class="info">published time: 1442</div> 
<div class="info">expiry time 23 june 2016 1100</div> 
<div> 

私のPHPは、私がクラス情報で2番目のdivを取得しようとしているようです。

<php?include_once('simple_html_dom.php'); 
$html = file_get_html('http://www.example.com'); 
$html->save(); 

foreach($html->find('div[class=info]', 2) as $e) 
     $pdate = $e->innertext . '<br>'; 

echo "pdate: $pdate"; 
?> 

これを達成するための解決策はありますか?

答えて

3

あなたは、インデックスを提供している場合:

$html->find('div[class=info]', 2) 
          ^this one 

あなたは直接の要素を取得するつもりです。したがって、->innertextをまっすぐに使用することもできます。そのforeachため

$info = $html->find('div[class=info]', 2); 
echo $info->innertext; 

必要がありません:あなたはすでに第三の要素を得ました。

あなたはforeachことが必要な場合は、単にこれだけを使用します。

$html->find('div[class=info]') 
         //^note: the second argument is omitted 

これはあなたに見つかった要素のコレクションを提供します。例:

foreach($html->find('div[class=info]') as $e) { 
    echo $e->innertext, '<br/>'; 
} 

これは実際にmanualでカバーされています。

以下 HTML要素の検索方法は?セクション。

+0

感謝を。あなたはなぜエラーが発生したのか知っていますか? –

+1

@MohamedAthifその単一の要素に、したがって、エラーが、これは確かにこれは助けてうれしい – Ghost

1

あなたは、単にこれを行うことによって、あなたの結果を得ることができます働い

<?php 
require_once('simple_html_dom.php'); 

$html = file_get_html('http://www.example.com'); 
$html->save(); 

$pdate = $html->find('div[class=info]', 1)->plaintext; 

echo "pdate: $pdate"; 
+0

ありがとう。それで私は多くのコード行を省くことができます。 –

関連する問題