php 调用python 脚本 传入参数 , python 接收参数 ,php接收返回值

编程知识 行业动态 更新时间:2024-06-13 00:22:43

一:php调用python脚本 并传入参数,并接收返回值

    php调用python脚本可以用 system(),exec()和passthru() 函数,本篇文章主要介绍exec 函数

    

exec有三个参数,第一个参数为一个字符串,包括三个子串,起一个子串为使用的当前系统的解释器,如果直接写python则默认为系统默认的解释器,也可以指定本地python.exe 的路径。第二个子串为所要执行的python脚本的位置。第三个子串为所需传入的参数不限个数,中间用空格分隔,注意格式。子串间空格分割。

tips:如果使用相对路径指定脚本位置,或者在python脚本中使用了文件的相对路径,都需要改为当前php文件所对应的相对路径。

第二个参数是php接收的python脚本的返回值,注意,此处的$out中存放的并非python中return的值,并且所有return的值都不会进行保存,$out中存放的是python脚本中输出的值,即为print()函数所输出的所有数据,每次print()都会记录为一条字典数据,组合成array数组如下图:

第三个参数为执行情况的状态码,如果执行成功,返回0,否则返回一个非0数

 

二:python获取php传递参数

      导入sys包

     使用sys.argv[ ]数组获取传入参数,第一个传入参数为sys.argv[1],第二个为sys.argv[2]以此类推,不要使用argv【0】

    

tips:如果要获取python脚本的返回值,直接在python脚本中print()出来,$out数组会自动记录,而system()和passthru()在获取返回值上存在一定缺陷。使用数组作为参数,python接收时会将数组变为一个“Arrqy”字符串,所以本文的解决方案为将传入数组写成字符串,在python中重新分割为数组。

        在linux上使用php调用python 可能会出现文件写入权限的问题,需要更改文件的读写权限。在linux上调用python脚本时一定要明确指出exec()函数中python 的绝对路径并安装好所有需要的包,否则会报错。

 

 

 

更多推荐

php 调用python 脚本 传入参数 , python 接收参数 ,php接收返回值

本文发布于:2023-04-03 03:10:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/344ba5ab1ad7c6fc59170ff4ba02de6b.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:参数   脚本   返回值   php   python

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!