Доступ к списку каталогов FTP с помощью PHP - PullRequest
7 голосов
/ 19 июля 2011

Мне нужно загрузить данные с публичного FTP-сервера Бюро статистики труда для анализа.Я пытаюсь использовать PHP для получения списка, но я не уверен, как это сделать с общедоступным FTP-сервером - отсутствие ftp_login приводит к возвращению «false», а попытка войти в систему как анонимный приводит к зависанию скрипта.

Мой код:

<?php
// set up basic connection
$ftp = ftp_connect("ftp.bls.gov");
       ftp_login($ftp, "anonymous", "");
             ftp_pasv($ftp, true);
var_dump(ftp_rawlist($ftp, "/pub/time.series/la/"));
?>

Ответы [ 2 ]

11 голосов
/ 19 июля 2011

Ваш скрипт работает для меня ( см. Вывод ), я получаю хороший список каталогов. Пожалуйста, свяжитесь с системным администратором сервера, на котором запущен ваш PHP-скрипт, и обратитесь за поддержкой. Похоже, это проблема конфигурации сети для меня.

Кроме того, всегда проверяйте возвращаемые значения функции на наличие ошибок, прежде чем продолжить:

// connect
$ftp = ftp_connect("ftp.bls.gov");
if (!$ftp) die('could not connect.');

// login
$r = ftp_login($ftp, "anonymous", "");
if (!$r) die('could not login.');

// enter passive mode
$r = ftp_pasv($ftp, true);
if (!$r) die('could not enable passive mode.');

// get listing
$r = ftp_rawlist($ftp, "/pub/time.series/la/");
var_dump($r);

Что такое анонимный FTP?

Анонимный FTP - это средство, с помощью которого сайты архивов предоставляют общий доступ. в их архивы информации. Эти сайты создают специальные аккаунт называется "анонимный". Пользователь "Аноним" имеет ограниченный доступ права на хост архива, а также некоторые эксплуатационные ограничения. На самом деле, единственными разрешенными операциями являются вход в систему с использованием FTP, список содержимого ограниченного набора каталогов и извлечение файлы. Некоторые сайты ограничивают содержимое каталога анонимный пользователь тоже может видеть. Обратите внимание, что «анонимные» пользователи не являются Обычно разрешено передавать файлы на сайт архива, но может только получить файлы с такого сайта.

Традиционно эта специальная учетная запись анонимного пользователя принимает любую строку в качестве пароля, хотя обычно используется любой пароль "гость" или адрес электронной почты (e-mail). Какой-то архив сайты теперь явно запрашивают адрес электронной почты пользователя и не будут разрешить вход с "гостевым" паролем. Предоставление адреса электронной почты это вежливость, которая позволяет операторам архивного сайта получить некоторое представление о кто пользуется их услугами.

Выдержка из: Как использовать анонимный FTP (RFC 1635)

0 голосов
/ 20 июля 2011

Попробуйте этот код Php. Надеюсь, это будет полезно:

<?php
$connect = ftp_connect("ftp.hostname.com"); 
$result = ftp_login($connect, "username", "password");
$a = ftp_nlist($connect, "code22");

foreach($a as $value){
    echo $value,"<BR>";
}
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...