2010-06-29 3 views
0

Обратите внимание: я довольно новичок в использовании php-команд и регулярных выражений. У меня есть html-документ, полученный через php-команды, теперь я хочу извлечь данные из 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>** 

мне нужна текст между строками "ВЫСОКОЙ" и "РЕЕСТРОДЕРЖАТЕЛЕМ". В основном мне нужны данные из тегов <TD width=3D"513"> и <TD width=3D"513">, но есть много случаев, когда этот тег встречается.

+6

** YOU DO NOT WANT REGEX ДЛЯ THAT ** – Gordon

+1

ВОЗМОЖНЫЙ DUPLICATE из [тегов открытого доступа RegEx, кроме тегов, которые содержат XHTML) (http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self- содержащиеся теги/1732454 # 1732454) – Gordon

+0

Пожалуйста, используйте обычный язык - здесь нет необходимости кричать. – Lars

ответ

0

Если весь код содержался в $ code, я бы сделал следующее.

$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"; 

Так, $ извлечь бы в конечном итоге, содержащего текст, который вы хотели ... экстракт.

Привет ~

(Примечание: Я написал этот код на лету и даже не попробовать, если есть какая-либо ошибка, я извиняюсь, и, пожалуйста, дайте мне знать)

Смежные вопросы