2010-07-17 3 views
0

을 구문 분석 : 그것은 괄호의 문제이다 나는 그것이정규 표현식 코드를 참조하십시오 HTML

array(
    1 => 
    array 
     0 => string 'G・R', 
    2 => 
    array 
     0 => string> 'G-R' 
) 

을 반환 할

$result = "<b>Associated Names</b>&nbsp;&nbsp;[<a href='http://www.examples.com/authors.html?act=change&id=6141&item=associated'><u>Edit</u></a>]</td> 
     </tr> 
     <tr> 
      <td class='text' align='left'>G&#12539;R<br />G-R<br />   </td>" 

preg_match_all("/<b>Associated Names.{10,100}<td class='text' align='left'>((.*<br \/>)*).*<\/td>/sU", $result, $assoc); 
var_dump($assoc); 
----------------------------------------------------------- 
RESULT 
array 
    0 => 
    array 
     0 => string '<b>Associated Names</b></td> 
     </tr> 
     <tr> 
      <td class='text' align='left'>G&#12539;R<br />G-R<br />   </td>' (length=135) 
    1 => 
    array 
     0 => string '' (length=0) 
    2 => 
    array 
     0 => string '' (length=0) 

(. (는)) 내가 그것을 해결하려면, 도와주세요 나

+0

정규식과 일치하는 대상은 무엇입니까? – quantumSoup

+0

정규식을 사용하여 HTML을 구문 분석하지 않는 것이 가장 좋습니다. 대신 HTML 구문 분석기를 사용해보십시오. –

+2

"Ask Question"페이지에서 정규 표현식으로 HTML을 구문 분석하지 말라는 메시지를 표시 할 수 있습니까? –

답변

3

HTML을 정규 표현식으로 구문 분석하지 마십시오. invokes the wrath of Zalgo.

the DOMxpath을 사용하여 추출하려는 특정 요소와 속성을 타겟팅하십시오.

(예 : xpath 예제를 제공 하겠지만 아직 배울 목록 ... :))

+0

조언을 주셔서 감사합니다. – meotimdihia

+0

모든 페이지가 잘 형식화 된 것은 아니기 때문에 불행히도, 때때로 유일한 방법입니다. 여러 번, Zend Dom Query가 dom을 올바르게 생성하지 못했고 잘못된 결과를 얻었습니다. 물론 프레임 워크의 결함은 아니지만 구문 분석은 지저분해질 수 있습니다. 나는 두 가지 방법을 모두 임시로 사용한다. – johnjohn

+0

@john, [tidy] (http://us2.php.net/manual/en/book.tidy.php)를 통해 페이지를 실행 해 보셨습니까? – Charles