通过FTP获取目录的权限

时间:2010-05-13 10:30:55

标签: php ftp

我试图通过FTP命令“STAT”获取目录的权限,如下所示:

$directory_list = ftp_raw($conn_id,'STAT '.$path);

上面的命令列出了整个目录内容,包括文件和子目录。然后我在返回的数据数组中搜索我需要检查的目录,并检索如下内容:

drwxr-xr-x   3 user  group     77824 May 13 10:15 Targetdir

这将让我解析drwxr-xr-x字符串,找出Targetdir的chmod是0755。

问题是,当包含目录有5000个文件时。 A)需要很长时间,并且B)ftp_raw函数在10次运行中返回空数组1。我不知道它是否超时或者问题是什么。

是否有更好的方法来查找目录的权限?有没有办法在“STAT”命令中限制检索到的fiels数量?我真的只需要前5名,不需要其他4995文件。

有谁知道,为什么我的命令不能100%运行?它为什么会破裂?我甚至无法重现我的错误,它是随机发生的。

1 个答案:

答案 0 :(得分:1)

请参阅手册中的ftp_exec示例。您可以通过这种方式生成文件列表,然后下载并解析。

ftp_exec($conn_id, 'ls -al >files.txt');

或者如果您知道目录的名称并且它是单一的:

ftp_exec($conn_id, 'ls -ld '.$DIRECTORY.' >permissions.txt');

如果您没有exec权限,请尝试:

ftp_nlist ($conn, "-ld ".$DIRECTORY);