@midarovrk

PHP как сделать автоматическое создание папок при перекачивании файла с одного сервера на другой?

Всем привет! Помогите пожалуйста немного подкорректировать скрипт:

<?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/");
Но это опять же нужно прописывать путь папок в самом скрипте.
  • Вопрос задан
  • 1378 просмотров
Решения вопроса 1
dimonchik2013
@dimonchik2013
non progredi est regredi
опять ты?

if (!mkdir(""./1/dcearth2/008/"", 0777, true)) {
    die('Failed to create folders...');
}


не забудь про точку, ну и без точки попробуй - посомтри, где он создаст
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы