|
|
|
| Есть текст такого формата:
<table cellspacing=0 cellpadding=0 border=0 width=350>
<tr><td valign=top nowrap><font class="text2" id="info"><a href="high.shtml">Вузы</a> (23) <font class="date">new</font><br>
<a href="colleges.shtml">Колледжи</a> (3) <font class="date">new</font><br>
<a href="organizations.shtml">Научные организации</a> (11)<br>
</td>
<td valign=top nowrap><font class="text2" id="info"><a href="study.shtml">Обучение и методики</a> (10)<br>
<a href="projects.shtml">Проекты</a> (17)<br>
<a href="schools.shtml">Школы</a> (28)<br>
</td></tr></table>
<font class="text2"><b><a href="/cgi-bin/guide/go?ID=856">Доктор экономических наук В.И.Лоскутов</a></b></font><br>
Биография. Научные работы и статьи. Критика, полемика. Единомышленники.<br>
<a href="/cgi-bin/guide/go?ID=856" target="_blank">http://loskutov.murmansk.ru</a>
  <font id="info">Добавлен: 15.04.05, переходов: 210, в нед. - 2 | <a href="/cgi-bin/guide/modify.cgi?">Изменить</a> | <a href="/cgi-bin/guide/dead?ID=856">Удалить</a></font><p>
<font class="text2"><b><a href="/cgi-bin/guide/go?ID=1182">Инновационный портал Мурманской области</a></b></font><br>
Новости. Инфраструктура. Законодательство. Проекты. Информационно-аналитическая поддержка.<br>
<a href="/cgi-bin/guide/go?ID=1182" target="_blank">http://www.nordinform.ru</a>
  <font id="info">Добавлен: 12.09.06, переходов: 121, в нед. - 4 | <a href="/cgi-bin/guide/modify.cgi?Current">Изменить</a> | <a href="/cgi-bin/guide/dead?ID=1182">Удалить</a></font><p>
 <table width="100%" cellspacing=0 cellpadding=0 border=0>
|
Хочу вытащить строки из верхней таблички и кусок кода начинающийся с <font class="text2"><b> и заканчивающийся  <table width="100%" cellspacing=0 cellpadding=0 border=0>.
Пишу так:
<?
$text= file_get_contents($adr); \\тут подобный вешеприведенному html код
$pattern = "|<table cellspacing=0 cellpadding=0 border=0 width=350>.+?<tr><td valign=top nowrap><font class=\"text2\" id=\"info\">(.+?)</td></tr></table>.+?<font class=\"text2\"><b>(.+?) <|is";
preg_match_all($pattern,
$text,
$out);
echo "<table cellspacing=0 cellpadding=0 border=0 width=350><tr><td valign=top nowrap>".$out[1][0]."</td></tr></table><br><hr><br>".$out[2][0];
?>
|
Вытаскавает только часть, ну это и понятно находит ближайшее совпадение   и все. Пишу так
<?
$text= file_get_contents($adr);
//$pattern = "|<table cellspacing=0 cellpadding=0 border=0 width=350>(.+?)</td></tr></table>.+?<font class=\"text2\">(.+?) <table width=\"100%\" cellspacing=0 cellpadding=0 border=0><tr><td width=20>|is";
$pattern = "|<table cellspacing=0 cellpadding=0 border=0 width=350>.+?<tr><td valign=top nowrap><font class=\"text2\" id=\"info\">(.+?)</td></tr></table>.+?<font class=\"text2\"><b>(.+?) <table width=\"100%\" cellspacing=0 cellpadding=0 border=0><|is";
preg_match_all($pattern,
$text,
$out);
echo "<table cellspacing=0 cellpadding=0 border=0 width=350><tr><td valign=top nowrap>".$out[1][0]."</td></tr></table><br><hr><br>".$out[2][0];
?>
|
и вообще ничего не происходит :( Где ошибка(и)? | |
|
|
|
|
|
|
|
для: TuX
(23.03.2007 в 00:00)
| | Именно от <font class="text2"><b>? Тгда регулярное выражение должно было бы выглядеть следующим образом
<?php
$pattern = "|<font class=\"text2\"><b>(.+?) <table|is";
?>
|
Приведите куски текста, которые вы хотите извлечь? | |
|
|
|