Php 获取目录';通过FTP访问用户的权限

Php 获取目录';通过FTP访问用户的权限,php,ftp,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 问题是,当包

我试图通过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”命令中检索到的FIEL的数量?我真的只需要前5名,不需要其他4995文件

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

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

ftp_exec($conn_id, 'ls -al >files.txt');
或者,如果您知道目录的名称,并且它是单个目录:

ftp_exec($conn_id, 'ls -ld '.$DIRECTORY.' >permissions.txt');
如果您没有exec权限,请尝试:

ftp_nlist ($conn, "-ld ".$DIRECTORY);
请参阅手册中的示例。您可以通过这种方式生成文件列表,然后下载并解析它

ftp_exec($conn_id, 'ls -al >files.txt');
或者,如果您知道目录的名称,并且它是单个目录:

ftp_exec($conn_id, 'ls -ld '.$DIRECTORY.' >permissions.txt');
如果您没有exec权限,请尝试:

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

我假设EXEC没有得到广泛的支持或启用,正如我可以想象的那样,该命令会带来安全噩梦。正如Krumelur提到的,我们在机器上禁用了EXEC。还有其他方法吗?试试ftp\u nlist($conn,“-ld”。$DIRECTORY);我可以使用ftp_rawlist($conn,$DIRECTORY),它提供具有权限、所有者和组信息的文件列表。我假设EXEC没有得到广泛支持或启用,因为我可以想象该命令会带来安全噩梦。正如Krumelur提到的,我们在机器上禁用了EXEC。还有其他方法吗?试试ftp\u nlist($conn,“-ld”。$DIRECTORY);我可以使用ftp_rawlist($conn,$DIRECTORY),它提供具有权限、所有者和组信息的文件列表