我试图通过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%运行?它为什么会破裂?我甚至无法重现我的错误,它是随机发生的。
答案 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);