ftp_rawlist没有列出.htaccess

时间:2018-03-13 07:40:26

标签: php .htaccess file ftp filesystems

我正在使用DirectAdmin并尝试自动创建/修改用户。

我可以使用这个PHP library创建用户就好了。但是,当创建用户时,会添加一些默认文件/文件夹:

cgi-bin/
    .htaccess
400.shtml
401.shtml
403.shtml
404.shtml
500.shtml
index.html
logo.shtml

我也想删除这些文件。我已经创建了一个递归列出所有文件/文件夹的功能,它工作正常。它使用/解析从ftp_rawlist()返回的字符串。问题是ftp_rawlist没有列出.htaccess文件。由于.htaccess未列出,我无法将其删除,也无法删除cgi-bin文件夹,因为它不是空的。

我可以在运行自动删除功能之前显式删除htaccess文件,但是如果有办法可以解决这个问题。此外,如果我使用这种方法使用不同的文件夹结构(我不知道任何子文件夹是否包含htaccess文件),它就会失败。

有没有办法强制ftp_rawlist列出htaccess文件?

更新

使用-a开关工作。 -A没有效果,所以它应该是小写的,但我猜这是特定于服务器的。

例如:

print_r( ftp_rawlist($conn, "-a public_html/cgi-bin") );

返回:

Array
(
    [0] => drwxr-xr-x    2 769        test           4096 Mar 13 11:50 .
    [1] => drwxr-xr-x    3 769        test           4096 Mar 13 10:53 ..
    [2] => -rw-r--r--    1 769        test             11 Mar 13 11:44 .htaccess
)

它还会返回...,因此我必须过滤掉这些内容。

更新2

关于ftp_rawlist()结果的解析;我已经看到了几个完成这项工作的功能但没有足够的可读性,我喜欢可读的代码。所以我决定写自己的。如果有人需要,请在此处分享:ftp_all_files()

0 个答案:

没有答案