【问题标题】:PHP exec not giving the same result as cmdPHP exec没有给出与cmd相同的结果
【发布时间】:2012-07-10 15:08:29
【问题描述】:
exec ("C:/Lame/sox \"C:/1/2.wav\" -t wav \"C:/1/2.rev\" reverse");

使用该代码使用音频后处理工具来反转声音文件。有输出,但文件大小约为应有大小的 1/5,我无法播放。基本上它会创建一个文件,但如果我在命令提示符下执行此操作,它不会是我得到的文件:

C:/Lame/sox "C:/1/2.wav" -t wav "C:/1/2.rev" reverse

这样,我得到了我想要的结果,我可以播放 rev 文件。

有人知道为什么会这样吗?

【问题讨论】:

  • 你用同一个用户执行它们吗?
  • 是的。一切正常。我可以执行其他命令,例如: exec ("C:/Lame/sox \"C:/1/2.wav\" -t wav \"C:/1/2.rev\" pitch 1000");那会奏效的。只有这个反向是问题,但它在 cmd 中有效。
  • 您是否尝试使用数组作为输出? php.net/manual/en/function.exec.php
  • 是的。不会改变任何东西。我真的很困惑为什么这不起作用并且已经尝试并查看了所有内容

标签: php cmd exec sox


【解决方案1】:

发现问题。这是一个许可问题。

所有其他后处理命令都有效,因为它写入该文件夹。反向在另一个文件夹中创建一个临时文件,当前用户没有写入权限,为什么它会在其中创建一个小文件,因为它稍后会尝试从不存在的文件中读取。

【讨论】:

    猜你喜欢
    • 2017-06-15
    • 2015-05-31
    • 1970-01-01
    • 2017-11-11
    • 2021-09-04
    • 1970-01-01
    • 1970-01-01
    • 2014-08-08
    • 2019-03-01
    相关资源
    最近更新 更多