2011-05-11 4 views
0

오픈 태그와 일치하는 태그를 찾으려고합니다. 하위 태그를 포함하여 상위 태그가 열리는 문제가 있습니다. 상위 태그는 캡처되지만 하위 태그는 무시됩니다.PHP preg_match_all 재연 패턴

ex. 부모의 모든 열 태그 부분 집합의 배열을하는

Array 
(
[0] => Array 
    (
     [0] => Array 
      (
       [0] => 


       [1] => 0 
      ) 

     [1] => Array 
      (
       [0] => /p 
       [1] => 1 
      ) 

    ) 

[1] => Array 
    (
     [0] => Array 
      (
       [0] => 

[1] => 5) [1] => Array ([0] => p [1] => 6)) [2] => Array ([0] => Array ([0] => 

       [1] => 19 
      ) 

     [1] => Array 
      (
       [0] => /p 
       [1] => 20 
      ) 

    ) 

[3] => Array 
    (
     [0] => Array 
      (
       [0] => 

[1] => 24) [1] => Array ([0] => p [1] => 25))) 

가 가능 :

</p> 
<p>hello world</p> 
<p><img 

preg_match_all('/<(\/?[a-z]+)[^>]*\/?>/i', $trimmed_text, $matches, PREG_OFFSET_CAPTURE | PREG_SET_ORDER); 

다음과 같은 출력을 줄 것이다? 당신이 어려운 방법을하고있는

+4

을 그리고 여기 당신이 정규식과 HTML/XML을 구문 분석하지 않는 이유를 정확하게합니다. 원하는 것을 찾지 말고 DOM을 사용하십시오. –

+0

http://php.net/manual/en/book.tidy.php를 참조하십시오. –

답변

1

,

전 HTML을 구문 분석 PHP Simple HTML DOM Parser를 사용

// Create DOM from URL or file 
include('simple_html_dom.php'); 
$html = file_get_html('http://www.scroogle.org/'); 

// Find all images 
foreach($html->find('img') as $element) 
     echo $element->src . '<br>'; 

// Find all links 
foreach($html->find('a') as $element) 
     echo $element->href . '<br>';