2016-06-15 2 views
1

의 속성을 얻기 위해 노력하는 오류를 제공하지만 나에게간단한 HTML DOM의 발견은 내가 웹 사이트에서 텍스트를 얻을 수 simple_html_dom을 사용하고 개체가 아닌

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는이 클래스의 정보로 두 번째 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"; 
?> 

가능한 해결책은 무엇입니까? 당신은 직접 요소를받을거야

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

:

답변

3

당신은 인덱스를 제공하는 경우. 따라서 ->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

고마워요. 이렇게하면 코드 줄이 많이 절약됩니다. –