2014-11-07 1 views
0

간단한 HTML 돔을 약간 이해하고 싶습니다. 내 로컬 호스트의 옵션을 테스트하기 위해 조금 놀고 있습니다.Simple_html_dom 제목과 소개를 내 페이지에 표시하십시오.

기본적으로이 웹 사이트의 제목과 소개를 내 페이지에 표시하고 싶습니다.

제목은 <h2>이고 소개는 <p>입니다.

내가 뭘 잘못하고 있니?

<?php 
include 'simple_html_dom.php'; 
// Create DOM from URL 
$html = file_get_html('http://www.nu.nl/algemeen'); 

foreach($html->find('div[class=list-overlay]') as $article){ 
    $title['intro'] = $article->find('span[class=title]', 0)->innertext; 
    $intro['details'] = $article->find('span[class=excerpt]', 0)->innertext; 


    echo '<h2>'. $articles . '</h2> 
    <p>'. $title .'</p>'; 
} 
?> 

편집 : 거기에는 이중 줄이 있습니다.

답변

0

당신의 영혼은 어떻게 든 옳습니다. 변수 이름에는 오타가 거의 없습니다. 여기 내 편집 코드입니다. 또한 이해를 돕기 위해 몇 가지 의견을 추가했습니다.

<?php 
    include 'simple_html_dom.php'; 
    // Create DOM from URL 
    $html = file_get_html('http://www.nu.nl/algemeen'); 

    // exctract all elements matching selector div[class=...] 
    foreach($html->find('div[class=list-overlay]') as $article){ 
     // and for each extract first (0) element that matches to span[class=title] 
     $title = $article->find('span[class=title]', 0)->innertext; 
     // and do the same for intro, extract first element that belongs to selector 
     $intro = $article->find('span[class=excerpt]', 0)->innertext; 

     // and write it down simply 
     echo '<h2>'. $title . '</h2>'; 
     echo '<p>' . $intro . '</p>'; 
    } 
?> 

이 솔루션은 좋지 않습니다. HTML의 구조가 나쁘기 때문에 기사 만 선택하는 것이 쉽지 않습니다 (예 : ID 기사가있는 div가 없기 때문에). 기사의 XML 피드를 제공하기 때문에 운이 좋은 사람입니다. 분석하기가 훨씬 쉽습니다 (전송할 데이터가 적음). find it here을 입력하고 웹 사이트의 제목과 소개를 추출하십시오.