欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

[求助]PHP执行系统命令失败

程序员文章站 2022-05-17 15:53:37
...
功能:通过外部程序转换图片格式(几种写法都不行,通过shell可以成功,但通过PHP返回1,说明写法有误)
exec("c:/Program Files/IrfanView/i_view32.exe c:/Program Files/IrfanView/03280009.sff /convert=c:/Program Files/IrfanView/4.tif", $result, $status); echo $status;


exec("c://Program Files//IrfanView//i_view32.exe c://Program Files//IrfanView//03280009.sff /convert=c://Program Files//IrfanView//4.tif", $result, $status); echo $status;


exec("c:\Program Files\IrfanView\i_view32.exe c:\Program Files\IrfanView\03280009.sff /convert=c:\Program Files\IrfanView\4.tif", $result, $status); echo $status;


exec("c:\\Program Files\\IrfanView\\i_view32.exe c:\\Program Files\\IrfanView\\03280009.sff /convert=c:\\Program Files\\IrfanView\\4.tif", $result, $status); echo $status;


PS:未开启安全模式


回复讨论(解决方案)

你这个 i_view32.exe 在系统中运行时又界面吗?

你这个 i_view32.exe 在系统中运行时又界面吗?
直接运行有界面,转格式的话只是命令调用应该不会出现界面。

PS:IrfanView是个功能比较强大的免费的看图软件,之前JAVA版本的程序已经可以执行,换到PHP了就不行了。

只是命令调用应该不会出现界面 ???
不能是应该!
你在命令窗口中执行一下,如果没问题就贴出命令来

表达错误,呵呵,确定没界面、没弹窗:
C:\Program Files\IrfanView>i_view32.exe c:\Program Files\IrfanView\03280009.sff /convert=c:\Program Files\IrfanView\4.tif

给 C:\Program Files\IrfanView>i_view32.exe 赋予一般用户执行权

"c:/Program Files/IrfanView/i_view32.exe

你这样写会把红色部分当成参数的(相当于一个错误的DOS命令),路径有空格要用引号

给 C:\Program Files\IrfanView>i_view32.exe 赋予一般用户执行权
之前有看到过这个建议,但右键属性没看到这个授权,请问如何操作呢?

"c:/Program Files/IrfanView/i_view32.exe

你这样写会把红色部分当成参数的(相当于一个错误的DOS命令),路径有空格要用引号
确实有空格的问题,不过我把路径调整了之后执行的时候就一直等待,貌似卡死了,是不是还是要授权啊。

成功了:
1、路径不能带空格,如带空格需特殊处理;
2、正确写法:exec("c:\\IrfanView\\i_view32.exe c:\\IrfanView\\03280009.sff /convert=c:\\IrfanView\\4.tif", $result, $status);