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

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

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

 

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

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

тема: Извлечь адрес из HTML-кода
 
 автор: Volodja   (26.02.2006 в 16:31)   письмо автору
 
 

Помогите составить выражение для такого html кода:

<div class=site><a onclick="R(this, '')" href="http://www.catalog.holodilniki.ru" target=_blank><b>www.catalog.holodilniki.ru</b></a> (<a href="/srch?sort=0&amp;oe=1251&amp;words=%EA%E0%F2%E0%EB%EE%E3&amp;filter=http://www.catalog.holodilniki.ru">всего 484</a>)</div>

<div class=site><a onclick="R(this, '')" href="http://www.bestlinks.ru" target=_blank><b>www.bestlinks.ru</b></a> (<a href="/srch?sort=0&amp;oe=1251&amp;words=%EA%E0%F2%E0%EB%EE%E3&amp;filter=http://www.bestlinks.ru">всего 3447</a>)</div>

Из этого кода нужно получить первый url, т.е. http://www.catalog.holodilniki.ru и http://www.bestlinks.ru

   
 
 автор: cheops   (26.02.2006 в 23:24)   письмо автору
 
   для: Volodja   (26.02.2006 в 16:31)
 

А до этих блоков имеются другие тэги <a>?

   
 
 автор: Volodja   (27.02.2006 в 00:15)   письмо автору
 
   для: cheops   (26.02.2006 в 23:24)
 

Да, имеются, там много всяких тегов в том числе и <a>

   
 
 автор: cheops   (27.02.2006 в 13:43)   письмо автору
 
   для: Volodja   (27.02.2006 в 00:15)
 

Если не сложно, прикрепите к сообщению полный HTML-файл, так как регулярное выражение будет зависить от того, что находится до и после этих блоков.

   
 
 автор: Volodja   (28.02.2006 в 04:06)   письмо автору
 
   для: cheops   (27.02.2006 в 13:43)
 

В общем этот код из выдачи Рамблера например http://www.rambler.ru/srch?oe=1251&words=%EA%E0%F2%E0%EB%EE%E3&start=1, нужно выдрать все url с выдачи

   
 
 автор: cheops   (28.02.2006 в 12:21)   письмо автору
 
   для: Volodja   (28.02.2006 в 04:06)
 

Тогда вам подойдёт следующий скрипт
<?php
  $contents 
file_get_contents("http://www.rambler.ru/srch?oe=1251&words=%EA%E0%F2%E0%EB%EE%E3&start=1");

  
$pattern "|<li>[^>]+><a [^ ]+ [^ ]+ href=\"([^\"]+)\"[^>]+>(.+)</a>|isU";
  
// Выполняем поиск по регулярному выражению
  
preg_match_all($pattern$contents$outPREG_PATTERN_ORDER); 
  
// Выводим результаты поиска
  
for($i 0$i count($out[1]); $i ++) 
  { 
    echo 
"<a href=".$out[1][$i].">".$out[2][$i]."</a><br>"
  } 
?>

   
 
 автор: Volodja   (28.02.2006 в 17:17)   письмо автору
 
   для: cheops   (28.02.2006 в 12:21)
 

Большое спасибо, Вы как всегда выручили.

   
 
 автор: Петровичь5   (23.04.2006 в 18:58)   письмо автору
 
   для: Volodja   (28.02.2006 в 17:17)
 

Спасибо за выше приведённый код для вытаскивания ссылок, но немоглибы
помочь сделать вытаскивание текста, я вот попытался написать что-то


  $pattern_text = '|<div class="text">([^ ]*)</div>|i';
  preg_match_all($pattern_text, $contents, $out_text, PREG_PATTERN_ORDER);

  for($i = 0; $i < count($out_text[1]); $i++){
   $text .= $out_text[1][$i].'<br>';
  }
   echo $text;


но тут почемуто выводиться не 15 записей а всего 13, к примеру если сравнить что выдаст сам рамблер

http://www.rambler.ru/srch?set=www&words=%E1%E5%F1%EF%F0%EE%E2%EE%E4%ED%EE%E5+%E2%E8%E4%E5%EE%ED%E0%E1%EB%FE%E4%E5%ED%E8%E5&btnG=%CD%E0%E9%F2%E8%21

результат привёдённого кода несоответсвует с результатом рамблера, там 14,15 запись
не определяется почемуто
Немоглибы помочь с этим?

   
Rambler's Top100
вверх

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