我正在设计一个Web应用程序,它从服务器上传代码并在其上运行cppcheck。我正在使用PHP。
我尝试使用exec($command,$output,$status);
命令
和命令是"cppcheck ". $filename;
返回的$ output数组只包含第一行,即:。
检查file.cpp ..
该行
“(错误)数组'a [10]'在索引10处访问,超出范围。”
显示在httpserver的error.log文件中。它实际上不是命令行错误或php错误,而是cppcheck产生的错误。是因为字符串包含“错误”,它进入error.log?我该如何解决这个问题?
答案 0 :(得分:0)
正如@arkascha正确指出的那样,cppcheck的输出必须是从stderr流到stdout的redirected。
很多时候,您需要将结果保存在文件中。您可以使用正常的shell重定向进行管道连接 错误输出到文件。
cppcheck file1.c 2> err.txt
您的电话将是
exec($command.' 2>&1', $output, $status);