Всем привет! Помогите пожалуйста немного подкорректировать скрипт:
<?php
get_img_in_dir("http://www.jurnalu.ru/online-reading/comicsonline/dcearth2/dcearth2008/5","1/dcearth2/008");
function get_img_in_dir($url, $dir) {
$host = parse_url($url, PHP_URL_HOST); // Нахожу хост в урле
/* Для начала скачиваю код страницы... */
$curl = curl_init(); // Инициализирую CURL
curl_setopt($curl, CURLOPT_HEADER, 0); // Отключаю в выводе header-ы
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //озвратить данные а не показать в браузере
curl_setopt($curl, CURLOPT_URL, $url); // Указываю URL
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12');
curl_setopt($curl, CURLOPT_REFERER, "http://www.jurnalu.ru/");
$code = curl_exec($curl); // Получаю данные
curl_close($curl); // Закрываю CURL сессию
// Код скачан и сидит в переменной $code
// Теперь можно через регулярные выражения
// вынимать из него ссылки
$arrayImg = array(); // Массив для ссылок изображений
$regex = '/<\s*img[^>]*src=[\"|\'](.*?)[\"|\'][^>]*\/*>/i';
preg_match_all($regex, $code, $arrayImg);
// Теперь в $arrayImg[1] сидит массив url-ами изображений
// Исправляю все ссылки на абсолютные и скачиваю их...
for($i=0; $i<count($arrayImg[1]); $i++) {
$path = parse_url($arrayImg[1][$i], PHP_URL_PATH); // Нахожу в ссылке путь
$path2 = parse_url($arrayImg[1][$i], PHP_URL_QUERY); // Нахожу в ссылке путь
$absolute_url = 'http://comicsonline.ru'.$path.'?'.$path2; // Создаю абсолютный путь
// Вот так я нахожу имя файла....
$name = explode("/", $absolute_url);
$name = $name[count($name)-1];
$name = substr($name, 0, strpos($name, "?"));
// Скачиваю изображение
if (!copy($absolute_url, $dir.'/'.$name)) {
echo '<p style="color:red;">Error copy - '.$name.'</p>';
}
}
}
?>
Что делает скрипт:
Заходит на указанную страницу, находит вот такую ссылку
http://comicsonline.ru/1/dcearth2/008/5.png
далее скачивает и сохраняет файл в указанную папку
1/dcearth2/008 на свой сервер.
Но, путь папок приходится прописывать в скрипте и самому вручную создавать эти папки на сервере.
Можно ли как то это автоматизировать? Чтобы скрипт сам создавал нужные папки, точно такие же как указаны в ссылке на изображение?
У меня получилось сделать так:
mkdir("1/dcearth2/008/");
Но это опять же нужно прописывать путь папок в самом скрипте.