使用PHP中的exec()命令运行Cppcheck

时间:2015-03-21 09:32:45

标签: php command-line exec cppcheck

我正在设计一个Web应用程序,它从服务器上传代码并在其上运行cppcheck。我正在使用PHP。 我尝试使用exec($command,$output,$status);命令 和命令是"cppcheck ". $filename;

返回的$ output数组只包含第一行,即:。

  

检查file.cpp ..

该行

  

“(错误)数组'a [10]'在索引10处访问,超出范围。”

显示在httpserver的error.log文件中。它实际上不是命令行错误或php错误,而是cppcheck产生的错误。是因为字符串包含“错误”,它进入error.log?我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

正如@arkascha正确指出的那样,cppcheck的输出必须是从stderr流到stdout的redirected

根据the manual, chapter 2.7

  

很多时候,您需要将结果保存在文件中。您可以使用正常的shell重定向进行管道连接   错误输出到文件。

     

cppcheck file1.c 2> err.txt

您的电话将是

exec($command.' 2>&1', $output, $status);