2009-12-03 14 views
0

와 나는 배열에 태그의 데이터를 얻을 어차피 : DIV, H2 및 배열구문 분석 HTML PHP는

에 걸쳐 : 나는 태그 사이의 값이 있음을 취득 할 때

// Load the HTML string from file and create a SimpleXMLElement 
$html_string = file_get_contents("data/csr.html"); /*the string really is in $html_string*/ 
$root = new SimpleXMLElement($html_string); 

문제는 여기서 시작

// Fetch all div, h2 and span values 
$divArray = $hdlsArray = $dtlsArray = array(); 
    foreach ($root->div as $div) { 
    $divArray[] = $div; 
    echo "".$div."<br />"; 
} 
foreach ($root->h2 as $h2) { 
    $hdlsArray[] = $h2; 
    echo "".$h2."<br />"; 
} 
foreach ($root->span as $span) { 
    $dtlsArray[] = $span; 
    echo "".$span."<br />"; 
} 

이의 결과는 대신 (SimpleXML을에 대해)

답변

1

This page 말한다 실제 태그 데이터를 인쇄 빈 페이지는 "그것이 유일한 문제는에만 유효 XM을로드 할 것이 오 L "이지만 HTML에 대한 해결 방법을 제공 할 수 있습니다.

StackOverflow의 '관련 질문'에는 this one이 포함되어 있지만 유효한 XML 태그 안에 설명되어 있습니다.

+0

이것은 simplexml을 시도하기 전에 사용한 이전 코드와 같습니다. 또한 오류를 반환합니다 (새 DOMDocument). 내가 아는 오류는 zend 확장과 충돌하기 때문입니다. 이것이 simplexml을 대신 사용하는 이유입니다. 태그 사이의 내부 데이터를 배열로 가져와야합니다. – megatr0n

+0

불행히도 저를 위해, 저 마지막 연결은 나가 여기에서 달성하는 것을 시도하고 있던 무슨을에 약간 관련성이 있었다 그러나 나는 너의 정신을 진짜로 좋아한다. – megatr0n

2

SimpleXMLElement 대신, Simple HTML DOM (online manual)을 제안합니다. 나는 그것을 전에 사용했고 결과에 매우 만족했습니다. 선택자와 마찬가지로 jQuery를 사용하여 모든 div, h2 및 span 값을 가져 오는 작업은 매우 간단합니다.

+0

제 3 자에게 가고 싶지는 않았지만 지금은 가장 좋은 대안으로 생각됩니다. 감사. – megatr0n

+1

오픈 소스! –