За последние 24 часа нас посетили 17073 программиста и 1745 роботов. Сейчас ищут 882 программиста ...

Как изменить путь к каталогу с файлами?

Тема в разделе "PHP для новичков", создана пользователем borus, 20 июн 2017.

  1. borus

    borus Активный пользователь

    С нами с:
    16 апр 2012
    Сообщения:
    161
    Симпатии:
    0
    Здравствуйте!

    С помощью нижеприведенного php файла отбираю картинки из папки на основании прохождения по содержимому файла, который предлагается выбрать на странице. Вот код файла:
    PHP:
    1. <?php
    2. ini_set("max_execution_time", "1200");
    3. function select_file($folder,$picture){
    4.     $fp=opendir($folder);
    5.     while (false !== ($cv_file = readdir($fp))) {
    6.         if(is_file($folder."/".$cv_file)) {
    7.             $file_name = mb_substr($cv_file, mb_strrchr($cv_file, '/'));
    8.             if(strtolower($file_name)==$picture){
    9.                 copy($folder."/".$file_name, "selected/".strtolower($file_name));
    10.                 return true;
    11.             }
    12.         }
    13.         elseif($cv_file!="." && $cv_file!=".." && is_dir($folder."/".$cv_file)){//поиск по подпапкам
    14.             select_file($folder."/".$cv_file, $picture);
    15.         }
    16.     }
    17.     closedir($fp);
    18. }
    19. ?>
    20. <!DOCTYPE html>
    21. <html>
    22. <head>
    23.     <meta charset="utf-8">
    24.     <title>Отбор картинок по списку названий файлов из csv файла</title>
    25. </head>
    26. <body>
    27.     <p>Введите файл:</p>
    28.     <form enctype="multipart/form-data" method="POST" >
    29.         <input type="file" name="userfile" />
    30.         <p>
    31.             <input type="radio" name="watermark" value="0" />Без водного
    32.             <input type="radio" name="watermark" value="1" />С водным
    33.         </p>
    34.         <p>
    35.             <input type="submit" value="Отобрать картинки!" />
    36.         </p>
    37.     </form>
    38.     <?php
    39.     if(isset ($_FILES['userfile'])){
    40.         $fn = $_FILES["userfile"]["tmp_name"];
    41.         $fd = fopen($fn,  "r");
    42.         while (!feof($fd)){
    43.             $fields = fgetcsv($fd);
    44.             if ($_POST['watermark']==0):
    45.                 select_file("D:\GD\baza_foto_Zolotoj_antilopy", $fields[0]);
    46.             else:
    47.                 select_file("D:\\Документы\\Фото\\1_Обработанные\\3_с водяным 800", $fields[0]);
    48.             endif;
    49.         }
    50.     }
    51.     ?>
    52. </body>
    53. </html>
    Ветка кода
    Код (Text):
    1. if ($_POST['watermark']==0):
    2.                 select_file("D:\GD\baza_foto_Zolotoj_antilopy", $fields[0]);
    отрабатывает отлично. Такое ощущение потому, что все символы в пути до папки с отбираемыми файлами латинские
    А ветка else того же условия:
    Код (Text):
    1. else:
    2.                 select_file("D:\\Документы\\Фото\\1_Обработанные\\3_с водяным 800", $fields[0]);
    не отбирает картинки, а выдает предупреждения
    Скажите, пожалуйста, как надо изменить код, чтобы путь D:\Документы\Фото\1_Обработанные\3_с водяным 800 не искался внутри папки C:\xampp_new\htdocs\selectfoto\, в котором лежит исполняемый файл? Ведь с "английским"(D:\GD\baza_foto_Zolotoj_antilopy) путем всё работает...
     
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.809
    Симпатии:
    1.332
    Адрес:
    Лень
    iconv перекодируй путь
     
    denis01 и borus нравится это.