如何在 PHP 代码中使用 Linux 命令从所有目录和子目录中获取所有文件名及其大小和文件路径。
我正在运行扫描代码。我需要在其中获取文件并执行扫描。问题是,当我在 Linux 服务器上运行时,执行扫描需要很长时间。因此,我想到将 linux 命令添加到我的 php 脚本中,并检查如果服务器是 linux,那么可以使用这些 coomands 而不是我的函数,从而提高扫描速度。
答案1
天真的解决方案:
$files = system('find / -printf "%p %b\n"');
解释:
$files = system(...)
将执行指定的 shell 命令并将输出存储在变量中$files
。find / -printf("%p %b\n")
该find
命令将列出从文件系统 root 开始的所有文件/
。这些-printf
选项指示find
根据指定的格式格式化其输出。格式字符串"%p %b\n"
将导致find
输出文件的路径 (%p
),后跟一个空格,然后是 512 字节块中的文件大小 (%b
),最后是换行符 (\n
)。这些-printf
选项还支持%k
格式说明符,它将以 1KB 块的形式打印文件的大小。