Php 警告:exec()[function.exec]:无法在中执行空白命令

Php 警告:exec()[function.exec]:无法在中执行空白命令,php,gnuplot,Php,Gnuplot,我试图在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`); 我也使用了passt

我试图在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“设置术语png;设置xrange[-2*pi:2*pi];设置输出'output.png';绘图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
然后抱怨它无法执行空白命令。

同时使用
exec
和backtick操作符是多余的——基本上,它们都执行相同的操作。backtick操作符实际上以shell命令的形式执行其内容,并返回命令的输出。因此,如果您的命令没有输出任何内容,您实际上会使用空字符串调用
exec

现在它不再给出错误,但在运行php文件:localhost/server之后,它不会保存output.png。php@Emad:您是否使用了backtick版本?我刚刚注意到,在从
exec
版本复制粘贴时,我留下了几个额外的反斜杠。我使用了两个版本,甚至是正确的反斜杠版本,但输出仍然没有保存到任何地方。(它应该保存在localhost文件夹中,但没有)@Emad:您解决了这个问题吗?命令行是否需要调整?是的,为了将文件保存在localhost文件夹中,我必须授予apache用户权限。