За последние 24 часа нас посетили 35319 программистов и 1814 роботов. Сейчас ищут 800 программистов ...

Не могу разобраться...

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

  1. VaneS

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

    С нами с:
    16 ноя 2011
    Сообщения:
    636
    Симпатии:
    4
    Адрес:
    Россия
    Здравствуйте! Возникла такая нужда, работать с ftp средствами php, а точнее нужно получить содержимое папки, к примеру корневой, я это делаю с помощью функции ftp_nlist(); Все как бы хорошо, но вот как отличить файлы от каталогов, ведь имя каталога может быть name.jpg
    Заранее большое спасибо!
     
  2. VampiR_WAR

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

    С нами с:
    19 авг 2009
    Сообщения:
    409
    Симпатии:
    1
    Адрес:
    Нижний Новгород
    ftp_nlist — Возвращает список файлов в заданной директории

    Добавлено спустя 56 секунд:
    Вы это для удаленного от скрипта сервере делаете?
     
  3. VaneS

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

    С нами с:
    16 ноя 2011
    Сообщения:
    636
    Симпатии:
    4
    Адрес:
    Россия
    Да, скрипт работает на удаленном от скрипта сервере!
    я вот придумал такой вариант с помощью функции ftp_rawlist() можно вывести полный список содержимого папки с временем изменения и атрибутами... так вот по атрибутам можно определить файл это или папка! Только не знаю правильно я делаю или нет))) Смотрел в нете там было написано что можно проверить с помощью функции is_dir() Но как я и думал, она у меня не стала работать, может я и что то делал не так...
     
  4. VampiR_WAR

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

    С нами с:
    19 авг 2009
    Сообщения:
    409
    Симпатии:
    1
    Адрес:
    Нижний Новгород
    Код (PHP):
    1. <?php 
    2.   // Устанавливаем соединение с FTP-сервером 
    3.   require_once("config.php"); 
    4.   // Директория на сервере 
    5.   // $dir = "/html/forum/"; 
    6.   $dir = "/"; 
    7.   // Запускаем сканер 
    8.   scan_ftp($link, $dir); 
    9.   // Закрываем соединение с FTP-сервером 
    10.   ftp_close($link); 
    11.   // Результат находится в глобальном массиве $filename 
    12.   echo "<pre>"; 
    13.   print_r($filename); 
    14.   echo "</pre>"; 
    15.   //////////////////////////////////////////////////////// 
    16.   // Рекурсивная функция спуска по дереву 
    17.   // директорий 
    18.   //////////////////////////////////////////////////////// 
    19.   function scan_ftp($link, $dir) 
    20.   { 
    21.     GLOBAL $filename; 
    22.     // Получаем все файлы корневого каталога 
    23.     // Дескриптор соединения $link получен в config.php 
    24.     $file_list = ftp_rawlist($link, $dir); 
    25.     // Выводим содержимое каталога 
    26.     foreach($file_list as $file) 
    27.     { 
    28.       // Разбиваем строку по пробельным символам 
    29.       list($acc, 
    30.            $bloks, 
    31.            $group, 
    32.            $user, 
    33.            $size, 
    34.            $month, 
    35.            $day, 
    36.            $year, 
    37.            $file) = preg_split("/[\s]+/", $file); 
    38.       // Если файл начинается с точки - игнорируем его 
    39.       if(substr($file, 0, 1) == '.') continue; 
    40.       // Определяем является ли объект директорией 
    41.       if(substr($acc, 0, 1) == 'd') 
    42.       { 
    43.         // Директория 
    44.         scan_ftp($link, $dir.$file."/"); 
    45.       } 
    46.       // Определяем является ли объект файлом 
    47.       if(substr($acc, 0, 1) == '-') 
    48.       { 
    49.         // Файл 
    50.         $filename[] = $file." - ".$dir.$file; 
    51.       } 
    52.     } 
    53.   } 
    54. ?>
    Добавлено спустя 1 минуту 16 секунд:
    http://www.php.ru/forum/viewtopic.php?t=19668