2010-03-15 54 views
1

嘿,我试图通过PHP在窗口上执行一个程序,该命令在下面发布。这看起来好像完全通过脚本运行,即使它在手动输入命令提示符时有效。PHP exec()在窗口不工作

exec('C:\\ffmpeg -i ' . $movedfile . ' -acodec aac -ab 128k -vcodec libx264 -fpre C:\\ffmpeg\\share\\ffmpeg\\libx264-hq.ffpreset -crf 22 -threads 0 -wpredp 0' . $convertedfile); 

有什么建议吗?

谢谢!

+2

如果您将东西放入变量并且echo $ var; exec($ var); echod var是否可以工作? – plod 2010-03-15 19:25:21

回答

1
exec('C:\ffmpeg -i .... 

这将意味着您将在您的C:\根目录中有ffmpeg.exe。我想你的意思

exec('C:\ffmpeg\ffmpeg -i .... 
+0

不,它位于我的C根目录下进行测试。我也尝试了什么建议 – 2010-03-15 19:26:11

+0

$ execvar = exec('C:\\ ffmpeg -i'。$ movedfile。'-acodec aac -ab 128k -vcodec libx264 -fpre C:\\ ffmpeg \\ share \\ ffmpeg \\ libx264-hq.ffpreset -crf 22 -threads 0 -wpredp 0'。$ convertedfile); debug($ execvar); 但在execvar中没有值 – 2010-03-15 19:28:13

12
  1. 您在年底
  2. 缺少空间,你真的应该使用escapeshellarg()
+1

谢谢,那个空间是导致问题的原因。上帝,有时你只需要另一双眼睛来查看你的代码。万分感谢! – 2010-03-15 19:37:02

+1

@您可以使用左侧的复选标记将此答案标记为已接受。 – 2010-03-15 20:08:47

+0

我也有一个问题,因为相同的问题.. – 2013-09-17 12:26:05

0

尝试运行只有命令本身不带任何选项,看看是否有帮助。此外尝试运行简单的第一个 - dir

+0

当我执行目录,它确实返回结果: 8 Dir(s)549,287,497,728字节免费 – 2010-03-15 19:31:23

+0

所以执行工程。你写你的ffmpeg +选项的方式存在一些问题。 – dusoft 2010-03-15 19:39:23

0

你检查权限?假设标准配置,IUSR_MACHINENAME需要对可执行文件,任何源文件/输出文件以及任何临时目录/文件执行读取和执行权限

+0

OP在WIN下! – dusoft 2010-03-15 19:34:56

+0

是...... IUSR_MACHINENAME是IIS默认用于执行/访问网站文件的标准Windows系统用户。 – 2010-03-16 17:14:43