С нами с 11.08.06
Сообщения: 939
Рейтинг: 849
|
Добавлено: 24/07/09 в 17:10 |
Туплю, не могу написать одним регекспом вытаскивание из html-кода массива ссылок с тумбнашек на большие картинки: a href=...big.jpg img src=...small.jpg /a
Естественно с кучей прочих символов, атрибутов, кавычек/апострофов, переносов строк между ними и прочим непредсказуемым мусором.
Кто подскажет готовый регексп? С меня - респект и уважуха :-)
|
|
|
|
С нами с 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;
} |
ПС: один регекспом не обошлось
в общем смысл такой что берем все линки а потом проверяем каждую, тумба ли это.
|
|
|
|
С нами с 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'))); |
для всего документа, дальше можно модифицировать на свое усмотрение
|
|
|
|
Текстовая реклама в форме ответа Заголовок и до четырех строчек текста Длина текста до 350 символов Купить рекламу в этом месте! |