设为首页 收藏本站
查看: 354|回复: 0

[经验分享] python 调用 php 实例

[复制链接]

尚未签到

发表于 2017-3-20 12:47:29 | 显示全部楼层 |阅读模式
原文地址:http://hi.baidu.com/ji_haiyang/item/482d8e52cda53a11db163517


python 调用 php 实例
最近在项目中使用到了,用python 调用PHP的方法,网上的资料很少,但PHP调用PYTHON的很多,网上找了好些,都不是想要的。
自己查找了一些资料,自己写了一个,主要是使用到了PYTON的subprocess的类,上图

源码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# -*- coding: utf-8 -*-
#!/usr/bin/python
'''
Created on 2013-8-21

@author: Jihaiyang
'''
import subprocess
#此call 方法直接打印结果
#out = subprocess.call("php -f /var/www/test.php", shell=True)


#python 执行PHP文件 并且打印结果 shell=True 代表使用shell命令
#调用php文件,传入参数,
method = 'test'
args = '你的';
args1 = '太阳';
proc = subprocess.Popen(["php -f /var/www/test.php "+method+" "+args+" "+args1], shell=True,
stdout=subprocess.PIPE)
script_response = proc.stdout.read()
print(script_response)
在这里学到,在python 里传参,参数都是以空格分割
通过PHP命令运行一个PHP文件和通过URL运行一个文件完全不一回事,可以这么说,两个无任何关系
1
["php -f /var/www/test.php "+method+" "+args+" "+args1]
对PHP进行传参使用空格分割,argv[1],argv[2], ......

在PHP里获取通过命令执行PHP的文件的参数,用PHP内置的变量$argv, $argv变量是一个数组,里面包含了传入参数的信息
PHP获取参数方法有,针对函数get_func_args(), 针对URL $_GET,$_POST, $_REQUEST 等方式,而获取通过命令执行的参数为,$argv, 直接就是$argv

上图PHP源码



PHP源码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
#php  php -f  /var/www/test.php 通过使命获取参数方式是
#直接就能使用 $argv变量,这个变量是个数组,我记得javascript中也有这个方法
print_r($argv);
$file_path = $argv[0];
$method = $argv[1];
$args1 = $argv[2];
$args2 = $argv[3];

function test($file_path, $args1, $args2){
    echo "你文件的路径是:$file_path\n";
    echo "你现在使用的方法是:".__function__."\n";
    echo "你现在使用的第一个参数是:$args1\n";
    echo "你现在使用的第二个参数是:$args2\n";
     
     
    echo "python 调用php+";
}
if (!empty($method)){
$method($file_path,$args1, $args2);
}
?>

运行结果如下:上图

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-352410-1-1.html 上篇帖子: PHP课堂--实验1 下篇帖子: php phpeclipse + xampp 配置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表