我有一个Gams 应用程序,我想通过php代码运行它,在尝试了很多事情之后,我终于发现,对于在逗号行中运行的C:\Program Files\GAMS23.7
,我应该转到C:\Program Files\GAMS23.7
,在命令行中运行一个命令来运行应用程序,如下所示:
gams.exe trnsport_php.gms
Gams将在命令行中成功运行,现在我想在php中运行它,我在这个路径中添加了一个别名
C:\程序文件\GAMS23.7 23.7
然后我在其中创建了我的php文件,当我想用php中的代码精确地解释它时:
if(system('gams.exe trnsport_php.gms'))
echo 'Not Error';
else echo'Error';
它显示了我的错误
再一次使用这个:
if(system('./gams.exe trnsport_php.gms'))
echo 'Not Error';
else echo'Error';
再次打印错误
我也试过了,但是没有结果,我不知道这里出了什么问题。这个也不管用:
if(system ("\"C:\\Program Files\\GAMS23.7\\gams.exe \"C:\\Program Files\\GAMS23.7\\trnsport_php.gms"))
echo'success';
else
echo 'no';
发布于 2012-02-18 07:13:36
我发现了问题,我不知道为什么,但我应该去命令行,只需调用gams
echo exec('C:\WINDOWS\system32\cmd.exe');
echo exec('gams.exe trnsport_php.gms');
发布于 2012-02-17 11:02:11
system
和exec
命令在失败时返回false
,在成功时从执行命令的结果返回最后一行。要测试命令是否成功运行,您必须像这样使用它:
if (system('./gams.exe trnsport_php.gms') === FALSE)
echo 'error';
else
echo 'success';
如果您不使用=== FALSE
,您也会看到“错误”,如果没有输出。
也许可以尝试使用passthru
查看执行命令的原始输出。
https://stackoverflow.com/questions/9326633
复制相似问题