每行 exec() 的 PHP 调用函数


PHP call function for each line exec()

我想获取特定目录中所有文件的文件路径。问题是目录非常大(大约 400GB(。我尝试进行递归调用以读取所有目录和子目录,它工作正常 - 但它很慢。我有一个想法,我称之为"查找...«与执行官。使用 shell 时,我可以获取所有文件的数组,但我只能在该过程完成后访问该数组。在搜索时有一些东西可以获取结果会很棒,这样我就可以将其存储在我的数据库中,其他程序可以访问它。我不想为每个(或每个n个(结果调用一个函数。这样的事情可能吗,你会怎么做?

要在搜索时获取结果,请使用 popen — 打开进程文件指针 — 而不是 exec — 执行外部程序。

我是否正确阅读了您正在使用exec查找所有文件?

更好的方法是使用php本身,以及一些可用的功能,如DirectoryIterator和RecursiveDirectorIterator。

就个人而言,我认为使用这些比使用 exec 运行命令更好。这样,当您可以在 php 中执行此操作时,您就不会将处理传递给另一个进程。

不过,我不确定在创建数组时是否能够获得可用数据。您可以将数组的每个值存储到数据库中,这样,每次将值添加到数组中时,数据库都会更新。然后,您可以在脚本仍在运行时使用数据库中的信息。