За последние 24 часа нас посетили 16702 программиста и 1694 робота. Сейчас ищут 865 программистов ...

Получить список файлов на ftp. Нужно срочно позарез, help!

Тема в разделе "Прочие вопросы по PHP", создана пользователем pixcher, 16 окт 2009.

  1. pixcher

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

    С нами с:
    9 окт 2009
    Сообщения:
    9
    Симпатии:
    0
    Пишу крупный проект, но сталкнулся с тупой ошибкой,
    ФТП открывается в браузере - и выводит список файлов



    Но следующий код не может получить список файлов на FTP,
    выдает пустой массив
    Сам код:


    PHP:
    1. <?php
    2. $ftp_server="---";
    3. $ftp_user_name="---";
    4. $ftp_user_pass="---";
    5.  
    6. // установка соединения
    7. $conn_id = ftp_connect($ftp_server);
    8.  
    9. // проверка имени пользователя и пароля
    10. $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
    11.  
    12. // получение списка файлов директори /
    13. $buff = ftp_rawlist($conn_id, '/');
    14.  
    15. // закрытие соединения
    16. ftp_close($conn_id);
    17.  
    18. // вывод буфера
    19. var_dump($buff);
    20.  
    21. ?>

    Что я только не перепробовал, локальный фтп сервер открывает нормально, возможно проблема с кодировкой или что-то в этом роде, помогите, готов заплатить за помощь, нуждаюсь в реализации срочно =(
     
  2. pixcher

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

    С нами с:
    9 окт 2009
    Сообщения:
    9
    Симпатии:
    0
    Предложите пожалуйста любую другую рабочую реализацию вывода файлов на фтп для конкретного фтп сервера.
     
  3. Simpliest

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

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Настоятельно рекомендую убрать ссылку и сменить пароль.

    В коде тоже их потри.

    По теме. Должно все работать.
    У тебя конект к фтп вообще проходит?
     
  4. pixcher

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

    С нами с:
    9 окт 2009
    Сообщения:
    9
    Симпатии:
    0
    Да, коннект есть, другие фтп команды выполняюся корректно, ссылку затем и оставил, чтобы протестить смогли.
    Не выводится только список файлов. У меня такая проблема была в программе cuteFTP , который не видел файлов в корне, в то время, как интернет эксплорер их отображал.
     
  5. Simpliest

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

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
  6. pixcher

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

    С нами с:
    9 окт 2009
    Сообщения:
    9
    Симпатии:
    0
    Спасибо, проблема решена
     
  7. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Php.ru, только здесь профессионалы ответят точно в срок. Специально для наших посетителей мы поочередно несем ночное дежурство. Приходите к нам!
     
  8. kai

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

    С нами с:
    5 ноя 2010
    Сообщения:
    2
    Симпатии:
    0
    извиняюсь за некропостинг, но раз

    > только здесь профессионалы ответят точно в срок. Специально для наших посетителей мы поочередно несем ночное дежурство.

    то спрошу здесь :)

    столкнулся с подобной проблемой - не выводится список файлов в директории. код:

    Код (Text):
    1. <?php
    2. ini_set( 'display_errors' , '1' );
    3. error_reporting(E_ALL);
    4.  
    5. $conn_id = ftp_connect("сайт.ру");
    6. $login_result = ftp_login($conn_id, "юзер", "пароль");
    7.  
    8. if (ftp_pasv($conn_id, true))
    9. { echo "Initiated passive mode\n"; }
    10. else { echo "Could not initiated passive mode\n"; }
    11.  
    12. ftp_chdir($conn_id, "/");
    13.  
    14. $nlist = ftp_nlist($conn_id, "/");
    15. $nlist = ftp_nlist($conn_id, "/");
    16. $nlist = ftp_nlist($conn_id, "/");
    17. $buff = ftp_rawlist($conn_id, "/");
    18. $buff = ftp_rawlist($conn_id, "/");
    19. $buff = ftp_rawlist($conn_id, "/");
    20.  
    21.  
    22. ftp_close($conn_id);
    23.  
    24. print_r($buff);
    25. print_r($nlist);
    26.  
    27. ?>
    выполняю в консоли:
    Код (Text):
    1. bash-3.2$ php check.php
    2. Initiated passive mode
    3. Array
    4. (
    5. )
    6. Array
    7. (
    8. )
    как, наверное, уже видно по коду - я изгуглил весь гугл, и пробовал всё, что можно - переходил в пассивный режим, сменял директорию перед запросом списка, выполнял запрос три раза подряд (да, такое я тоже встретил).
    также нагуглил, что могут быть проблемы с open_basedir и папкой /tmp - сделал юзеру open_basedir / и проверил, что на /tmp стоят права 777

    проблема точно не зависит от версии php, т.к. на одном сервере проверял две версии php - с обеими такая проблема.

    самое интересное то, что под рутом этот код работает! то есть пхп от имени юзера явно не хватает каких-то прав, но вот дурная функция ленится сказать, каких именно. естественно, всевозможные error_reporting`и добавлял, и даже логи апача курил (не знаю, правда, зачем) - никаких ошибок или даже варнингов/нотисов.

    помогайте, коллеги :)

    //если это что-нибудь даст, система: centos 5.4, php версий 5.2.14 и 5.3.2
     
  9. kai

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

    С нами с:
    5 ноя 2010
    Сообщения:
    2
    Симпатии:
    0
    отключение/изменение upload_tmp_dir также ничего не дало.