2013-07-11 59 views
2

命令PNG的优化插件使用OptiPNG:为什么PHP了shell_exec不工作

本教程使用命令

Synopsis: optipng [options] files ... 
Files: Image files of type: PNG, BMP, GIF, PNM or TIFF 
Basic options: 
    -?, -h, -help show the extended help 
    -o optimization level (0-7) [default: 2] 
    -v  run in verbose mode/show copyright and version info 
Examples: 
    optipng file.png 
(default speed) 
    optipng -o5 file.png 
(slow) 
    optipng -o7 file.png 
(very slow) 
Type "optipng -h" for extended help. 

然后我运行下面的PHP代码

$txt = shell_exec("C:\DSPadmin\DEV\optipng\optipng C:\Source\ChangSha\temp_process\production\zoomTxt\A06_text.png"); 
var_dump ($txt); 

返回NULL并没有执行

但是,当我在cmd shell中运行相同的命令我打开ned

C:\DSPadmin\DEV\optipng\optipng C:\Source\ChangSha\temp_process\production\zoomTxt\A06_text.png 

它按预期工作,如何解决问题?谢谢

+1

是否打开了安全模式?运行Web服务的用户是否具有运行命令和/或写入输出目录的权限? – Orangepill

+0

如果此功能在默认情况下未被禁用,您是否检查过您的'php.ini'?在'php.ini'中寻找'disable_functions' –

+0

disable_functions = – user782104

回答

0

单引号您的命令。

您的字符串中“... hangSha \ temp_proces ...”中的“\ t”被制表符替换。