Реклама на сайте Advertise with us

Мастера регэкспов, подскажите :-)

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:



С нами с 11.08.06
Сообщения: 939
Рейтинг: 849

Ссылка на сообщениеДобавлено: 24/07/09 в 17:10       Ответить с цитатойцитата 

Туплю, не могу написать одним регекспом вытаскивание из html-кода массива ссылок с тумбнашек на большие картинки: a href=...big.jpg img src=...small.jpg /a
Естественно с кучей прочих символов, атрибутов, кавычек/апострофов, переносов строк между ними и прочим непредсказуемым мусором.
Кто подскажет готовый регексп? С меня - респект и уважуха :-)

0
 



С нами с 27.09.03
Сообщения: 5454
Рейтинг: 2506

Ссылка на сообщениеДобавлено: 24/07/09 в 19:22       Ответить с цитатойцитата 

беру прям из класса парсера галеры.
$this->html - хтмл галеры
$this->movie_ext - это массив расширений мувиков.

Код:
   function get_thumb_urls()
   {
      if (strlen($this->html)==0) {$this->er = "HTML of gallery is empty"; return array();}
      $ret = preg_match_all("/<a[^>]+href\s*=[\s'\"]*(".implode('|', $this->movie_ext)."|[^>\s'\"]*\.(?:jpeg|jpg|".implode('|', $this->movie_ext)."))[^>]*>(.*?)(?:<\/td|<\s*\/a\s*)>/is", $this->html, $hrefs);
      if (!$ret) return array();
      $res=array();
      for ($i=0; $i<count($hrefs[2]); $i++)
      {
         $ret=preg_match("/img[^>]+src\s*=[\s'\"]*([^>\s'\"]*\.(?:jpeg|jpg|gif))[^><]*/i", $hrefs[2][$i], $imgs);
         if (!$ret) continue;
         $res['fulls'] []= $hrefs[1][$i];
         $res['thumbs'] []= $imgs[1];
         preg_match("/\.[a-z]+$/i", basename($hrefs[1][$i]), $ext);
      }
      return $res;
   }

ПС: один регекспом не обошлось smail101.gif
в общем смысл такой что берем все линки а потом проверяем каждую, тумба ли это.

0
 



С нами с 05.05.05
Сообщения: 1913
Рейтинг: 1134

Ссылка на сообщениеДобавлено: 25/07/09 в 02:30       Ответить с цитатойцитата 

при условии что small залинкована на пиксу
Код:
  function get_thumb_urls($html)
  {
    if (strlen($html) == 0)
    {
      return array();
    } else
    {
      $i = 0;
      preg_match_all('%<a\s+.*href\s*=(?:\'|\")([^\.]+\.jpe?g)[^>]*><img\s+.*src\s*=(?:\'|\")(.*\.(?:jpeg|jpg|gif))[^>]*><\/a>%iU', $html, $match);
      while ($i < sizeof($match[1]))
      {
        $output['hrf'][] = $match[1][$i];
        $output['tmb'][] = $match[2][$i];
        ++$i;
      }
    }
    return $output;
  }
  ini_set('max_execution_time', '60');
  echo '<pre>';
  print_r(get_thumb_urls(file_get_contents('http://www.dasandyman.com/bangbros2k7/es3950/1/ph.html')));

для всего документа, дальше можно модифицировать на свое усмотрение

0
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »