php执行外部程序 php如何执行sh脚本 php如何对接python

问题背景:有一天接到一个需求,领导那边已经给了一个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

还有很多方法大家可以自行尝试

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中,有几种方法可以执行shell脚本。其中一种方法是使用os模块。os模块提供了一些函数,可以执行shell命令并返回结果。你可以使用os.system()函数来执行shell脚本。这个函数接受一个字符串参数,其中包含要执行shell命令。例如,你可以使用以下代码来执行一个sh脚本: import os os.system("sh script.sh") 还有一种方法是使用subprocess模块。subprocess模块提供了更强大和灵活的执行shell命令的功能。你可以使用subprocess.run()函数来执行shell脚本。与os.system()不同,subprocess.run()函数返回一个CompletedProcess对象,你可以从该对象中获取执行结果和其他信息。以下是一个示例代码: import subprocess result = subprocess.run(["sh", "script.sh"], capture_output=True, text=True) print(result.stdout) 以上是两种常用的方法来在Python执行sh脚本。你可以根据你的具体需求选择其中一种方法来执行你的脚本。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Python | 执行shell 命令的几种方法](https://blog.csdn.net/MissMango0820/article/details/126021826)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值