2011-03-08 4 views
0

PHP를 사용하여 큰 HTML 페이지에서 100 단어가 넘는 텍스트 블록을 추출하고 싶습니다. 텍스트가 <p>...</p>에 포함되어 있는지 여부는 중요하지 않습니다. 일관된 텍스트 블록을 만드는 단어의 수만 신경 쓰여서 HTML 단락 외부의 텍스트도 고려해야합니다.HTML 페이지에서 텍스트 블록을 추출하는 방법은 무엇입니까?

어떻게이 작업을 수행 할 수 있습니까?

답변

5

저는 phpQuery를 사용합니다. jQuery에 익숙하십니까? 그들은 같은 구문을 공유합니다. 새 라이브러리를 설치하는 방법에 대한 걱정하지만,이 라이브러리가 아니라 머리 추가

phpQuery

당신은 다음과 같이 액세스 할 수 있습니다 가치가 날 믿어 있습니다

텍스트에 대한 무엇입니까
foreach($doc->find('p') as $element){ 
    $element = pq($element); 
    echo str_word_count($element->text()); 
} 
+1

PHP Simple DOM Parser보다 어떤 이점이 있습니까? 구문은 동일하게 보입니다. – lecodesportif

+0

jquery 선택기를 사용할 수 있습니다. 그래서 p : last-child 또는 p + a, 또는 p : nth-child (2) 등을 사용할 수 있습니다. PHP 쿼리는 서버 브라우저에 대해 전체 서버처럼 작동 할 수 있기 때문에 셀렉터 유연성이 한 가지 장점 중 하나입니다 요청을함으로써 페이지를 검색하고 페이지를 조작 할 수 있습니다. – Jason

+0

@lecodesportif : Simple_HTML_DOM에는 오류 관리 기능이 전혀 없습니다. 따라서 문서를로드 할 때로드되었는지 여부를 알 수 없습니다. 나머지 방법은 더 좋지 않습니다. 개인적으로 나는 매일 SHTMLDOM보다 phpQuery를 사용할 것입니다. –

2

PHP Simple DOM Parser을 사용하십시오.

foreach($html->find('p') as $element){ 
    echo str_word_count($element->src); 
} 
+0

그 '

...

'에 포함되지 않았습니까? – lecodesportif

+0

모든 요소를 ​​순환하여 큰 텍스트 블록이있는 요소를 쉽게 선택할 수 있습니다. – fredley

관련 문제