Can';t通过PHP shell_exec运行sox命令
我已经寻求帮助并尝试了一切,但仍然无法成功。我正在尝试使用shell_exec()从PHP脚本运行sox(声音交换)命令行实用程序。我需要连接两个音频文件,这两个文件与PHP脚本位于同一目录中(即apache可以访问) 以下是困惑:Can';t通过PHP shell_exec运行sox命令,php,sox,command-line-tool,Php,Sox,Command Line Tool,我已经寻求帮助并尝试了一切,但仍然无法成功。我正在尝试使用shell_exec()从PHP脚本运行sox(声音交换)命令行实用程序。我需要连接两个音频文件,这两个文件与PHP脚本位于同一目录中(即apache可以访问) 以下是困惑: 某些sox命令使用shell_exec()可以正常工作。例如,我可以播放音频文件或检索有关它的信息 如果我回显concatenation命令(这样我就可以确切地知道PHP发送给shell的是什么),然后将其复制并粘贴到shell窗口中,它就会运行得很好 我的apac
"/soxpath/sox /filepath/file1.wav /filepath/file2.wav /filepath/combined.wav"
但这在PHP中不起作用:
shell_exec('/soxpath/sox /filepath/file1.wav /filepath/file2.wav /filepath/combined.wav');
有人能解释一下吗?我错过了什么?谢谢。好的,我终于让它工作了,所以我想我应该澄清我造成的任何困惑。这个问题是无关的。因此,可以使用shell_exec()从PHP运行sox命令 我只是遇到了javascript的时间问题。我使用的是在客户端捕获音频,然后将音频文件保存到服务器上。因此,我的PHP脚本位于ajax调用处理程序的上下文中,根据定义,它是异步的。早该意识到这一点
问题是,在运行要连接的sox命令时,没有保存该文件,因此它自然会失败,因为该文件还不存在。当我打电话时,它起作用了 shell_exec()返回什么?/soxpath/sox????是完整路径还是示例…shell_exec()返回NULL。“/soxpath/”只是实际完整路径的占位符。在我的例子中是“/bin/sox-14.4.0/”怎么样:shell_exec('/soxpath/sox/filepath/file1.wav/filepath/file2.wav/filepath/combined.wav>file.txt');创建file.txt的file.txt?中出现任何内容,但它是一个空文件(大小为0字节),shell_exec()仍返回NULL。