|
|
|
| Кто может подсказать, или навести пример того как можн скопировать все картинки с какого нибудь сайта?
За ранее благодарен! :)
(при этом все ссылки на картинки получины с помощью рег. выражений) | |
|
|
|
|
|
|
|
для: dima_s_d_s
(05.12.2006 в 22:25)
| | Выдрал из своего скрипта ... вроде должно работать
<?php
$text = file_get_contents($_GET['url']); // нужная страница
$url = parse_url($_GET['url']);
$host = $url['host'];
$path = $url['path'];
if (!preg_match("#^/.+/$#", $url['path']))
$path = substr($url['path'], 0, strlen($url['path']) - strlen(basename($url['path'])));
$path = rtrim($path, '/').'/';
if (preg_match_all("#<(img|image)[\s]+[^>]*src=['\"]?([^'\"\s>]+)['\"]?[^>]*>#is", $text, $regs))
{
if (count($regs[2] > 0))
{
if (!is_dir('browser/'.$host))
mkdir('browser/'.$host, 0777);
foreach ($regs[2] as &$imgname)
{
if (substr($imgname, 0, 7) != 'http://')
{
$imgname = preg_replace("#^(\.\./)*#", "", $imgname);
if ($imgname[0] != '/')
$imgname = "http://".$host.'/'.$path.$imgname;
else $imgname = "http://".$host.$imgname;
}
@copy($imgname, 'browser/'.$host.'/'.basename($imgname));
@chmod('browser/'.$host.'/'.basename($imgname), 0777);
}
}
}
?>
|
| |
|
|
|
|
|
|
|
для: kasmanaft
(06.12.2006 в 05:41)
| | Сенкс! Буду пробовать!
Можешь его немного прокоментировать? | |
|
|
|
|
|
|
|
для: dima_s_d_s
(06.12.2006 в 11:28)
| | Ок, комментирую :)
<?php
$text = file_get_contents($_GET['url']); // нужная страница
// парсим адрес, для удобств
$url = parse_url($_GET['url']);
$host = $url['host'];
$path = $url['path'];
// если путь из адреса ведет к определенному файлу
// отрезаем имя файла, нам оно не нужно
if (!preg_match("#^/.+/$#", $url['path']))
$path = substr($url['path'], 0, strlen($url['path']) - strlen(basename($url['path'])));
// путь должен заканчиваться на "/"
$path = rtrim($path, '/').'/';
// разбираем полученную страницу рег. выражением
// ищем на ней все картинки
if (preg_match_all("#<(img|image)[\s]+[^>]*src=['\"]?([^'\"\s>]+)['\"]?[^>]*>#is", $text, $regs))
{
if (count($regs[2] > 0))
{
// если папки нет, создаем (вообще писал скрипт, который бы закачивал все
// картинки на ftp (у меня туда траф не считается) и катринки показывал уже оттуда
// поэтому тут везде "browser" ... нужно создать такую папку, если ничего трогать не будешь.
// в ней будет создаваться папка с именем сайта, откуда копируешь картинки
// (куда они и будут копироваться)
if (!is_dir('browser/'.$host))
mkdir('browser/'.$host, 0777);
foreach ($regs[2] as &$imgname)
{
// если ссылка на картинку относительная, делаем из нее
// абсолютную .... нужно сказать не лучшим образом (но в основном работает)
if (substr($imgname, 0, 7) != 'http://')
{
$imgname = preg_replace("#^(\.\./)*#", "", $imgname);
if ($imgname[0] != '/')
$imgname = "http://".$host.'/'.$path.$imgname;
else $imgname = "http://".$host.$imgname;
}
// собственно копируем картинку
@copy($imgname, 'browser/'.$host.'/'.basename($imgname));
@chmod('browser/'.$host.'/'.basename($imgname), 0777);
}
}
}
?>
|
| |
|
|
|
|
|
|
|
для: kasmanaft
(06.12.2006 в 14:48)
| | Спасибо ! :) | |
|
|
|
|
|
|
|
для: kasmanaft
(06.12.2006 в 14:48)
| | Незнаю почему но у меня не выходит.
Я делаю так!
создал у себя на ftp паку browser
например
$url="http://figa.net.ru";
А потом зппускаю скрипт!
Может что-то не так? | |
|
|
|
|
|
|
|
для: dima_s_d_s
(06.12.2006 в 18:55)
| | Вот так нужно сделать тогда:
<?php
$link = "http://figa.net.ru/";
$text = file_get_contents($link); // нужная страница
$url = parse_url($link);
|
| |
|
|
|