работа с фтп

Тема в разделе "PHP", создана пользователем phillip, 4 мар 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. phillip

    phillip

    Регистр.:
    4 сен 2007
    Сообщения:
    413
    Симпатии:
    15
    Нашел много вариантов рекурсивно залить на фтп, но ни одного- рекурсивно удалить)) Собственно, хочу написать сам да вот только не пойму, есть аналог is_file() только для фтп? Иначе как проверить папка это или файл, и как проверить пуста или нет. Подскажите куда копать, или если есть под рукой, дайте готовое решение)))
     
  2. mydooms

    mydooms Постоялец

    Регистр.:
    22 фев 2008
    Сообщения:
    105
    Симпатии:
    26
    Ну можно тупо:
    1) листинг
    2) попытка всё удалить как файл
    3) всё, что не удалилось - пытаемся удалить как папку
    4) всё, что не удалилось - пытаемся делать листинг
    5) GOTO 1
     
  3. phillip

    phillip

    Регистр.:
    4 сен 2007
    Сообщения:
    413
    Симпатии:
    15
    думал о таком, но что-то тоже показалось тупо. :D хотелось бы более красивый, правильный чтоли способ
     
  4. EnGeLs

    EnGeLs Постоялец

    Регистр.:
    30 апр 2008
    Сообщения:
    87
    Симпатии:
    21
    Можно проверить размер функцией ftp_size.
    Если функция выдает "-1" значит это не файл.
     
  5. phillip

    phillip

    Регистр.:
    4 сен 2007
    Сообщения:
    413
    Симпатии:
    15
    спасибо, помогло) подскажите как составить функцию чтоб рекурсивно удаляла! что-то не выходит(( как бы лишнего не удалить :D

    PHP:
    $con=ftp_connect(trim($ftphost));
        
    $login_result ftp_login($contrim($ftplogin), trim($ftppass));
            
        function 
    del($file) {
            global 
    $con;
            if(
    ftp_size($con$file) == -1) {
            
    $dirs=ftp_nlist($con$file);
            
    //unset($dirs[0]); unset($dirs[1]);
            
    print_r($dirs);
                       foreach (
    $dirs as $d) {
                       
    del($d);        
                      }
            } else {
            
    ftp_delete($con$file);
            }
        }
     
Статус темы:
Закрыта.