Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: граматно грабануть старницу (чёт не выходит :( )
 
 автор: Sulla   (15.02.2006 в 04:21)   письмо автору
 
 

страница например : http://www.rp5.ru/index.php?c=7
или вот : http://www.rp5.ru/index.php?r=87

структура у них почт иодинаковая

<td class="info" valign="top" height="350" width="100%" height="100%">
<DIV align="center"><h1 class="info">Саратовская область</h1>
<p class="mpl">(Выберите населенный пункт, погода в котором Вас интересует)</p>
</DIV><table cellspacing="5" cellpadding="5">
<tr>
<td width="170" valign="top" align="left" class="mpl">
<b>А</b><br>
<a href="town.php?id=884" class="mpl">Агафоновка</a><br>
<a href="town.php?id=976" class="mpl">Александров Гай</a><br>
<a href="town.php?id=985" class="mpl">Александровский</a><br>


нужно выбрать название сраны или области : (тут вроде всё ок )


  $pattern = '|\<DIV align="center"><h1[^>]+>(.*)</h1\>|isU'; 
  preg_match($pattern, $text, $out); 
  echo $out[1]."<br>"; 



а вот во второй части лажа... он то выдирает запись с одной буквой + название , то все записи в зависимости от того поставить ? вот тут (.*) или нет...


  $pattern2 = '|<a href=\".*\" class="mpl">(.*)</a\><br>|isU'; 
  preg_match($pattern2, $text, $out2); 
  echo $out2[1]."<br>"; 


где ошибаюсь ?

   
 
 автор: cheops   (15.02.2006 в 13:36)   письмо автору
 
   для: Sulla   (15.02.2006 в 04:21)
 

А что требуется извлечь?

   
 
 автор: Sulla   (15.02.2006 в 16:21)   письмо автору
 
   для: cheops   (15.02.2006 в 13:36)
 

сначала извлеч отсюда :
<DIV align="center"><h1 class="info">Саратовская область</h1>

слова сарстовская область.
ту твроде проблем нету

ввот от сюда :

<b>А</b><br>
<a href="town.php?id=884" class="mpl">Агафоновка</a><br>
<a href="town.php?id=976" class="mpl">Александров Гай</a><br>

слова Агафоновка, Александров Гай -- соответственно их в массив

   
 
 автор: cheops   (15.02.2006 в 22:44)   письмо автору
 
   для: Sulla   (15.02.2006 в 16:21)
 

Хм... если вы хотите извлечь несколько значений необходимо использовать вместо preg_match() функцию preg_match_all(), например, следующим образом
<?php 
  $text 
file_get_contents("opr000JR.htm");
  
$pattern2 '|<a[^>]+class=\"mpl\">(.*)</a><br>|isU'
  
preg_match_all($pattern2$text$out2); 
  echo 
"<pre>";
  
print_r($out2[1]);
  echo 
"</pre>";
?>

   
 
 автор: sulla   (16.02.2006 в 00:13)   письмо автору
 
   для: cheops   (15.02.2006 в 22:44)
 

КЛАСС!!!
спасибо огромное!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования