2010-06-29 7 views
0

참고 : 저는 PHP 명령과 정규 표현식을 사용하는 것에 상당히 익숙합니다. PHP 명령을 통해 가져온 html 문서를 가지고 있는데, 이제는 html에서 두 문자열 사이의 데이터를 추출하려고합니다. 예를 들어문자열이나 태그 사이의 데이터 추출

는 :

**<h4 class=3D"style1"> HIGH (blah)</h4>** 
<h4><br> 
<br></b> 
<br> 
&nbsp;</h4> 
<TR> 
<TD width=3D"513"> 
<B**>**textttttttttt**</**B><br><br><br><br><hr><table><tr><td>= 
<b>texttttt<br><br><br><br>textttttttt<table>ttttttttttttt</table>ttttttttttttt 
</table></td></tr></table> 
<TD width=3D"513"> 
<ul> 
= 
= 
</u1>        
**<p align=3D"right"><b>REGISTRAR(EVALUATION)<= 
/b></p>** 

나는 "HIGH"와 "REGISTRAR"문자열 사이에있는 텍스트가 필요합니다. 주로, 태그 <TD width=3D"513"><TD width=3D"513">의 데이터가 필요했지만이 태그가 발생하는 인스턴스가 많습니다.

+6

을 ** 당신이 ** – Gordon

+1

[RegEx는 XHTML 자체 포함 태그를 제외하고 열려있는 태그와 일치 할 수 있습니다.] (http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self- 포함 된 태그/1732454 # 1732454) – Gordon

+0

정상적인 언어를 사용하십시오. 여기서 소리 치지 않아도됩니다. – Lars

답변

0

전체 코드가 $ 코드에 포함 된 경우 다음을 수행합니다. 그래서

$beginning = 'HIGH'; 
$ending = 'REGISTRAR'; 
if (false !== $left = strpos($code, $beginning)) 
{ 
    $left += strlen($beginning); 
    $extract = (false === $right = strpos($code, $ending, $left)? 
     $extract = substr($code, $left, $right - $left): ''; 
} 
echo (isset($extract))? 
    "The code chunk was extracted and it is:\n$extract\n": 
    "The code chunk was not found. :(\n"; 

, 은 당신이 ... 추출물 원하는 텍스트를 포함 끝날 것 추출 $.

인사 ~

(참고 : 나는 즉석에서이 코드를 작성하고도 미안 오류가있는 경우, 그것을 시도하고 알려 주시기 바랍니다하지 않았다)