python如何调用php文件中的函数详解

 更新时间:2020年12月29日 10:46:57   作者:xiaofeiyuan  
这篇文章主要给大家介绍了关于python如何调用php文件中函数的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

前言

python调用php代码实现思路:php文件可通过在terminal中使用php命令行进行调用,因此可使用python开启子进程执行命令行代码。函数所需的参数可通过命令行传递。

测试环境

1、操作系统:macos10.13.2

2、php版本:PHP 7.1.7(mac自带)

3、python版本:python3.6.0

4、python库:subprocess

调用php函数

php命令行调用php文件中的函数

php文件:test_hello.php

<?php


function hello_world($s1)
{
	$str1 = $s1;
	echo $str1;
	echo "\n";
}

function hello_world2($s1, $s2)
{
	$str1 = $s1;
	$str2 = $s2;
	echo $s1;
	echo "**********";
	echo $s2;
	echo "\n";
}

// 获取参数,索引为0为调用的文件路径,索引为1为调用的函数,索引为2为函数传入参数$s1,索引为3为函数参数$s2

var_dump($argv);
// exit;

// 调用函数
$func_name = $argv[1];


if ($func_name == "hello_world")
{
	// 参数1
	$param1 = $argv[2];
	hello_world($param1);
}
elseif ($func_name == "hello_world2")
{
	// 参数1
	$param1 = $argv[2];
	// 参数2
	$param2 = $argv[3];
 hello_world2($param1, $param2);
}
else
{
 echo "the function $func_name is not exist !";
}

?>

terminal执行php命令

# 字符串中包含空格、逗号、反斜杠,需要使用""来确定为1个参数
php -f test_hello.php hello_world "My name is John\\, age is 20."
php -f test_hello.php hello_world2 "My name is John\\, age is 20." "My hometown is BaoDing."
php -f test_hello.php hello_world3 "My name is John\\, age is 20."

执行结果

python子进程执行php命令行

python文件:test.py,将test_hello.php与test.py放在同目录下运行

import subprocess


class Test(object):
 def run(self, cmd):
 proc = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE) # 开启子进程
 res = proc.stdout.read()
 if res:
  res = res.decode()
 return res


cmd1 = 'php -f test_hello.php hello_world "My name is John\\, age is 20."'
cmd2 = 'php -f test_hello.php hello_world2 "My name is John\\, age is 20." "My hometown is BaoDing."'
cmd3 = 'php -f test_hello.php hello_world3 "My name is John\\, age is 20."'
obj = Test()
for i in [cmd1, cmd2, cmd3]:
 res = obj.run(cmd1)
 print(res)
 print("*" * 10)

到此这篇关于python如何调用php文件中函数的文章就介绍到这了,更多相关python调用php函数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python实现类之间的方法互相调用

    python实现类之间的方法互相调用

    下面小编就为大家分享一篇python实现类之间的方法互相调用,具有很的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • python获取从命令行输入数字的方法

    python获取从命令行输入数字的方法

    这篇文章主要介绍了python获取从命令行输入数字的方法,涉及Python操作命令行输入的相关技巧,需要的朋友可以参考下
    2015-04-04
  • python合并多个excel的详细过程

    python合并多个excel的详细过程

    合并需求很多,常见的有相同数据结构,按行进行纵向拼接,下面这篇文章主要给大家介绍了关于python合并多个excel的相关资料,需要的朋友可以参考下
    2022-10-10
  • Python使用flask框架操作sqlite3的两种方式

    Python使用flask框架操作sqlite3的两种方式

    这篇文章主要介绍了Python使用flask框架操作sqlite3的两种方式,结合实例形式分析了Python基于flask框架操作sqlite3数据库的两种常用操作技巧,需要的朋友可以参考下
    2018-01-01
  • 详解python列表生成式和列表生成式器区别

    详解python列表生成式和列表生成式器区别

    这篇文章主要介绍了python(列表生成式/器),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • Python 获取指定开头指定结尾所夹中间内容(推荐)

    Python 获取指定开头指定结尾所夹中间内容(推荐)

    获取文章中指定开头、指定结尾中所夹的内容。其中,开头和结尾均有多种,但最多也就十几种,所以代码还是具有可行性的,今天小编给大家介绍通过Python 获取指定开头指定结尾所夹中间内容,感兴趣的朋友一起看看吧
    2023-02-02
  • python多行字符串拼接使用小括号的方法

    python多行字符串拼接使用小括号的方法

    今天小编就为大家分享一篇python多行字符串拼接使用小括号的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • python实现简单温度转换的方法

    python实现简单温度转换的方法

    这篇文章主要介绍了python实现简单温度转换的方法,涉及Python操作字符串的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • 解决django同步数据库的时候app models表没有成功创建的问题

    解决django同步数据库的时候app models表没有成功创建的问题

    今天小编就为大家分享一篇解决django同步数据库的时候app models表没有成功创建的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • Python中生成Epoch的方法

    Python中生成Epoch的方法

    下面小编就为大家带来一篇Python中生成Epoch的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04

最新评论