问题背景:有一天接到一个需求,领导那边已经给了一个python包是将音频转换成视频的包,我犯难了,因为只给了包而不是让我对接接口。。。懵了,懵的是不知道该怎么在php端调用这个python包(或者说是一个脚本)主要的需求就是前端来一个音频上传完事调用这个脚本然后把返回的http形式的mp4文件展示出来,,,,ok不废话了上代码
注意:老规矩我所有代码因为签订保密协议所以只能给大家展示手写的基本逻辑就这样仅供参考
前端代码我就不管了 就和文件上传似的,感兴趣的下期我有空的话可以记录一下
$data = $_FILES['file'];
$new_path = "/home/xxx.$data['name']";//文件&音频等要保存的新路径 注意:是绝对路径
$is_update = move_uploaded_file($data['tmp_name'],$new_path);//将零时保存地址的音频或者文件移动到新地址
以上我们简单的完成了文件上传(我这里做的是音频上传性质都是一样的),那接下来就是要调用脚本了,那这个脚本的参数就是音频存储的绝对路径所以才有了我上面这段代码
$video_url = exec(这里写命令行就ok,$res);
//$res 则返回状态值 0为成功 1为失败 $video_url因为我用的函数是exec则返回命令行的最后一行结果
我目前知道的php可供执行外部命令的函数还是蛮多的,我这次开发的过程中使用到了俩个 分别是①system ② exec
① system — 执行外部程序,并且显示输出 (网上记录说是也是返回最后一行,可是我测试这个函数可以输出所有的执行结果)
system ( string $command
[, int &$return_var
] ) : string
②exec — 执行一个外部程序(返回值:命令执行结果的最后一行内容)
exec ( string $command
[, array &$output
[, int &$return_var
]] ) : string
还有很多方法大家可以自行尝试