使用PHP访问FTP目录列表

时间:2011-07-19 12:25:14

标签: php ftp

我需要从劳工统计局的公共FTP服务器下载数据进行分析。我正在尝试使用PHP来检索列表,但我不确定如何使用公共FTP服务器 - 不使用ftp_login导致返回“false”,并尝试以匿名方式登录挂起脚本。 / p>

我的代码:

<?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 个答案:

答案 0 :(得分:10)

你的脚本适合我(see output),我得到一个很好的目录列表。请联系您的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登录,      列出有限目录集的内容,并进行检索      文件。有些网站限制列出目录的内容      匿名用户也可以看到。请注意,“匿名”用户不是      通常允许将文件传输到存档站点,但只能      从这样的网站检索文件。

     

传统上,这个特殊的匿名用户帐户接受任何字符串      作为密码,虽然通常使用密码      “客人”或一个人的电子邮件(电子邮件)地址。一些档案      网站现在明确要求用户的电子邮件地址,而不是      允许使用“访客”密码登录。提供电子邮件地址      是一种礼貌,允许存档网站运营商了解      谁正在使用他们的服务。

摘自:How to Use Anonymous FTP (RFC 1635)

答案 1 :(得分:0)

试试这个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>";
}
?>