2011-02-09 2 views
0

일부 텍스트를 가져 오기 위해 simplehtmldom 스크립트를 사용하려고합니다.simplehtmldom을 사용하여 텍스트 스 니펫 가져 오기

<div id="posts"> 
    <div align="center"> 
    <SEVERAL LEVELS OF HTML> 
     <strong>XXX</strong> 
    </SEVERAL LEVELS OF HTML> 
    </div> 
    <div align="center"> 
    <SEVERAL LEVELS OF HTML> 
     <strong>IGNORE</strong> 
    </SEVERAL LEVELS OF HTML> 
    </div> 
    <div align="center"> 
    <SEVERAL LEVELS OF HTML> 
     <strong>IGNORE</strong> 
    </SEVERAL LEVELS OF HTML> 
    </div> 
</div> 

내가 id="posts"<div> 내부 속성 align="center"와 첫 <div> 내부의 첫번째 <strong> 태그에서, XXX의 문자열에서 얻으려고 텍스트를 다음과 같이 HTML 구조이다. 나는 <div align="center"> 태그의 텍스트에 관심이 없다.

은 "HTML의 여러 수준"등

내 코드를 지저분 중첩 된 테이블을 포함 : 나는 후손 선택기를 사용하고 있는데 분명히 내가 HTML의 여러 레벨을 통해 "생략"하고 있습니다. 이것이 내 print_r"Trying to get property of non-object" 인 이유입니까?

$html = file_get_html($page_1); 
$es = $html->find('div#posts div[align=center] strong'); 
print_r($es->plaintext); die; 

은 이상하게도이 문은 같은 "Trying to get property of non-object" 결과를 반환합니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

$es = $html->find('div#posts'); 

답변

0

이 가능한 이유 :

  1. $html = file_get_html($page_1);에서 $page_1는 URL되지 않을 수 있습니다. html을 포함하는 문자열 인 경우 $html = str_get_html('<div id="hello">Hello</div><div id="world">World</div>'); 대신 str_get_html을 사용하십시오.
  2. html에 div#posts이 두 개 이상 포함되어 있지 않아야합니다.