Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php替代shell的find+fgrep(+touch)_Php_Shell_Templates - Fatal编程技术网

php替代shell的find+fgrep(+touch)

php替代shell的find+fgrep(+touch),php,shell,templates,Php,Shell,Templates,我需要将上次编辑日期更改为选定数量的文件。 在我的目录树中,我有一个名为模板的目录。为了这个问题,我不知道确切的位置 我想要的是: -查找名为templates的目录中的所有文件,其中包含一个或多个关键字 -将上次编辑日期更改为现在 我可以用shell、find、fgrep和touch来实现这一点。这将是一种非常快速的方法。然而,我的雇主更喜欢非壳方法 我正在寻找一种在php中实现这一点的方法,但它必须非常快。有什么办法吗? 我正在避免递归遍历所有目录,遍历其中的文件以打开它们,只是为了检查它们

我需要将上次编辑日期更改为选定数量的文件。 在我的目录树中,我有一个名为模板的目录。为了这个问题,我不知道确切的位置

我想要的是: -查找名为templates的目录中的所有文件,其中包含一个或多个关键字 -将上次编辑日期更改为现在

我可以用shell、find、fgrep和touch来实现这一点。这将是一种非常快速的方法。然而,我的雇主更喜欢非壳方法

我正在寻找一种在php中实现这一点的方法,但它必须非常快。有什么办法吗?
我正在避免递归遍历所有目录,遍历其中的文件以打开它们,只是为了检查它们是否包含一个或多个关键字。

system'find/root-path*/templates/*.$keyword.*-exec touch{}\;?我在寻找命令行的替代品,而不是命令:你要的是一只五条腿的金羊。完全在本机PHP中执行此操作将明显慢于使用具有优化的C/C++内部调用的本机shell功能。您可以选择基于shell和fast,也可以选择基于PHP和slow。选择一个。我知道其中的区别,但正如前面提到的,我的雇主更喜欢php方法,因为安全原因。递归DirectoryIterator加上一些正则表达式/字符串测试或FilterIterator和touch then。它永远不会像find那样快。你必须决定它是否足够快。