我有以下连接到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 />";
}
答案 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服务器都需要时间。