我正在尝试使用 PHP 中的 GNUPLOT 绘制正弦图,但是当我exec用来绘制图形时,出现此错误:
警告:exec() [function.exec]:无法在第 8 行的 /Library/WebServer/Documents/serverSide2.php 中执行空白命令
这是我的代码:
exec(`echo "set term png;set xrange[-2*pi:2*pi]; set output 'output.png'; plot sin(x)" | gnuplot`);
我也使用了 passthru() 但得到了同样的错误:警告:passthru() [function.passthru]: 无法在第 8 行的 /Library/WebServer/Documents/serverSide2.php 中执行空白命令
但是我使用终端来检查代码是否有效,所以我输入了这个代码: 
echo "set term png;set xrange[-2*pi:2*pi]; set output 'output.png'; plot sin(x)" | gnuplot
它工作正常并给了我情节。
我知道我该怎么办?
您使用了错误的语法。
无论是使用exec和写命令行作为一个字符串:
exec('echo "set term png;set xrange[-2*pi:2*pi]; set output \'output.png\'; plot sin(x)" | gnuplot');
或使用反引号并且根本不涉及exec:
`echo "set term png;set xrange[-2*pi:2*pi]; set output 'output.png'; plot sin(x)" | gnuplot`;
使用您已有的代码,反引号会导致执行命令并将其输出传递给exec. 由于此命令行不产生任何输出,exec因此会抱怨它无法执行空白命令。