这将打印目录内容列表。但是,该目录包含图像和子目录,我无法区分它们。
header('Content-Type: text/plain');
$c = curl_init();
curl_setopt($c, CURLOPT_URL, 'ftp://username:password@ftp.example.com/Images/');
curl_setopt($c, CURLOPT_DIRLISTONLY, TRUE);
$r = curl_exec($c);
echo $r;
搜索在cURL邮件列表中显示someone else asking the same question,但我找不到答案。
理想情况下,我希望将内容列表作为PHP对象或数组接收,而不是作为我需要再次解析的文本。文件名不太可能包含换行符,所以我可能会拆分它们,但这感觉很脆弱。
我实际上想要做的是下载整个目录及其所有内容。
答案 0 :(得分:1)
方法1
使用FTP Functions代替。您可以使用ftp_nlist从ftp中获取列表,并检查文件或文件夹是否为ftp_chdir。这是php.net的示例:
function ftp_is_dir( $conn_id, $dir )
{
if( @ftp_chdir( $conn_id, $dir ) ) {
ftp_chdir( $conn_id, '/../' );
return true;
} else {
return false;
}
}
方法2
在服务器上创建php文件,在您请求的目录中为您显示文件夹列表和文件列表。例如,使用domain.com/get-list.php?folder=something/another-folder
获取列表并使用json_encode对列表进行编码,并使用json_decode在服务器上对其进行解码。
此方法无需FTP即可使用。
方法3
您可以使用is_dir — Tells whether the filename is a directory
自PHP 5.0.0起,此功能也可用于某些 URL 的包装即可。请参阅支持的协议和包装器以确定哪个 包装器支持stat()系列功能。