寻求解决方案以避免在php脚本中多次执行linux命令

寻求解决方案以避免在php脚本中多次执行linux命令

我有一个 PHP 脚本,它向 Angular 提供一些输出。该脚本对于从 Perl 脚本获取信息很有用。我正在使用exec()命令来调用 PHP 中的脚本。我得到了我想要的,但问题是耗时。我执行相同的脚本三次以在 php 中创建数组。例如:

exec("/usr/bin/reports -h -r -t ".$this->name." | grep -o '^\S*' | sed '1 d'",$report_id);
exec("/usr/bin/reports -h -r -t ".$this->name." | grep -oP '(?<= ).*' | sed '1 d'",$titles);
exec("/usr/bin/reports -h -r -n ".$this->name." | grep -oP '(?<= ).*' | sed '1 d'",$fullnames); 

正如您所看到的,我只是因为更改了参数而多次执行相同的脚本。

通过我存储的第一个命令report_id,第二个命令用于存储他们的位置,第三个命令用于存储他们的全名。我需要一个解决方案将这三个命令合二为一。请帮助避免时间复杂度。

答案1

  1. 我建议使用AWK,它可以解析多个正则表达式并自动分隔字段。它是一种简单而小型的语言,适用于所有 Unix,是专门为此类工作而创建的。
  2. 更好的方法是获取输出并使用 PHP 进行处理。执行()以行数组形式返回输出。preg_split()可以完成 grep/sed/cut 工作。
  3. 您可以使用 tee 命令在多个管道中使用报告的输出。
  4. 最后,你可以使用定制的锁定机制,但我不建议这样做。

相关内容