通过PHP Windows的八度脚本



我试图通过PHP运行一个八度脚本。我已经搜索过搜索并找到了一些结果,但没有一个为我工作。我尝试使用exec()和system()。我什至创建了一个批处理文件,该文件调用'octave myScript.m",并使用PHP的System()调用此BAT文件,但似乎不起作用。在浏览器页面中,我只是看到'c:/folder_path> octer_path> octave myscript.m"。八度脚本只会创建一个新文件并将文本写入其中。当我直接运行BAT文件(通过双击它)时,该文件将正确创建。我还将文件夹路径添加到八verc文件中,但似乎不起作用。我需要在我已经编写脚本的八度的八度中进行一些图像处理。我需要在客户端请求上调用此脚本,并将结果发送给客户端。我正在通过示例脚本检查调用过程,如前所述,该脚本创建了一个新文件。我在做什么错?

我的php代码是:

$cmd = "cmd /c C:PATH_TO_BAT_FILEmyBat.bat";
exec($cmd,$output);
system($cmd);
echo implode ("n",$output);

请注意,我的路径包含双重斜线以避免逃脱序列字符

我的蝙蝠文件是这个

octave temp.m

我的八度代码(temp.m)是这个

fid = fopen("helloScript.txt",'w');
fprintf(fid,"Hello world!");
fclose(fid);

在网页上的uput是:

C:PATH_TO_BAT_FILE>octave temp.m C:PATH_TO_BAT_FILE>octave temp.m

我可以在任务管理器中看到,每当我在浏览器中运行PHP脚本时,就会创建一个新的过程(我猜这是CMD)。另外,当我将蝙蝠文件更改为

echo hello

我可以在浏览器页面上看到以下内容

 C:PATH_TO_BAT_FILE>echo hello hello C:PATH_TO_BAT_FILE>echo hello hello 

,这可能意味着BAT文件已正确执行。但是,当我将BAT文件脚本替换为" octave my_file.m"时,我将无法看到输出。这可能意味着我的八度配置不正确?还是我缺少什么?

任何帮助将不胜感激。

谢谢

如果要运行批处理文件以在PHP中创建它,则PHP命令应该像这样。

exec('cmd.exe /c C:pathtotest.bat');

这很尴尬,但我通过提供完整的路径解决了它。在BAT文件中,我指定了octave.exe的完整路径(c: software path_to_octave.exe)和'.m'文件的完整路径。在我的PHP中,我只使用了exec()

最新更新