我正在使用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()。