PHP - 在FTP中识别目录与文件

时间:2014-12-12 13:08:29

标签: php foreach ftp

我有以下连接到FTP服务器的PHP代码,并将目录中的每个项目作为文件循环。问题是,这些项目中的一些是目录,我希望能够区分目录和文件。如果是目录,那么图标文件需要更改。

我是如何实现这一目标的?

由于

$icon = "<img src=\"/icons/file.png\" border="\0\">";

$conn = ftp_connect($ftp_server);
$login = ftp_login($conn, $ftp_username, $ftp_password);
$files = ftp_nlist($conn, ".");
ftp_close($conn); 

foreach ($files as $file) {
    echo $icon." - ".$file."<br />";
}

1 个答案:

答案 0 :(得分:0)

此函数只返回string array

您可以使用ftp_rawlist功能。 Documnetation

在此您可以获得如下TYPE:

 $children = ftp_rawlist($connetion, $directory);

 foreach ($children as $child) { 
    $chunks = preg_split("/\s+/", $child);
    $type=($chunks[0]{0} === 'd' ? 'directory' : 'file'); 
    $name=implode(' ', array_splice($chunks, 0, 8));
    //do whatever you want with $name & $type  || if($type=='file') echo $icon." - ".$name."<br />";
 }

第二个选项:如问题评论中所述,您可以将函数ftp_chdir调用到ftp_server。 link_for_this_method |但是每次为所有列表请求FTP服务器都需要时间。