如何通过ftp ftp抓取文件?

时间:2011-11-30 12:25:28

标签: php ftp

我有一个设置,我应该将以下内容直接插入我的浏览器:

ftp://username:p4ssw0rd@ip.ad.dr.ess/Archive/test.txt

授予对文件的访问权限。但是我似乎无法通过file_get_contents("$above_url")使用php获取这些文件 - 我收到以下错误:

  

[function.file-get-contents]:无法打开流:FTP服务器报告550 /Archive/test.txt:不是普通文件。

最终我希望能够将文件保存到这个位置。我在这里做错了很明显吗?

2 个答案:

答案 0 :(得分:1)

我建议您使用FTP extensionCURL extension,而不是使用file_get_contents()并希望PHP默认执行所有操作。它们允许您更好地控制与FTP访问相关的所有设置。特别是考虑到您计划写入FTP位置,最好建立一种正确的FTP处理方式。

答案 1 :(得分:0)

试试这个:

$c = curl_init("ftp://$username:$password@ftp.example.com/$remote");
// $local is the location to store file on local client
$fh = fopen($local, 'w') or die($php_errormsg); 
curl_setopt($c, CURLOPT_FILE, $fh);
curl_exec($c);
curl_close($c);

您传递用于curl_init()的URL。因为URL以ftp://开头,所以cURL知道使用FTP协议。您可以将用户名和密码直接嵌入到URL中,而不是单独调用登录到远程服务器。接下来,设置将文件存储在服务器上的位置。现在打开一个名为$ local的文件进行写入,并将文件句柄传递给curl_setopt()作为CURLOPT_FILE的值。当cURL传输文件时,它会自动写入文件句柄。配置完所有内容后,调用curl_exec()启动事务,然后调用curl_close()关闭连接。

(来自java-samples.com)