2010-02-28 7 views
2

HTML 문자열에서 img 태그를 모두 추출하려고합니다. 코드PHP preg_match_all은 아무 것도 반환하지 않습니다.

$d1  = file_get_contents("http://itcapsule.blogspot.com/feeds/posts/default?alt=rss"); 
preg_match_all('/<img[^>]+>/i',$d1,$result); 
print_r($result); 

를 참조하십시오 그리고 결과는

Array ([0] => Array ()) 

이다 그러나 같은 정규식 온라인 정규식 테스트 도구 http://regex.larsolavtorvik.com/에서 올바른 결과를 제공합니다.

무엇이 문제 일 수 있습니까?

답변

1

당신이 구문 분석하는 내용은 HTML 엔티티로 인코딩 - 기본적으로 <&lt;로 대체됩니다. 먼저 html_entity_decode을 사용하여 데이터를 일반 html로 변환하십시오.

추 신 : 정규식 대신 HTML 파서를 사용하십시오.

+0

고마워요! 그것을 시도 할 것이다. – Orion

0

이 난에 대한 :) 고마워 찾고 정확히 무엇 SimplePie를 XML 파서

include_once 'simplepie.inc'; 

$feed = "feedurl"; 

$data  = new SimplePie($feed); 
$data->init(); 
$data->handle_content_type(); 

foreach ($data->get_items() as $item) 
{ 
    $desc=$item->get_description(); 
    preg_match_all('/<img[^>]+>/i',$desc,$result); 
    print_r($result); 
} 

를 사용하여 문제를 해결!

관련 문제