溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

利用python怎么調(diào)用php文件中的函數(shù)

發(fā)布時間:2020-12-29 13:55:00 來源:億速云 閱讀:297 作者:Leah 欄目:開發(fā)技術(shù)

本篇文章為大家展示了利用python怎么調(diào)用php文件中的函數(shù),內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

測試環(huán)境

1、操作系統(tǒng):macos10.13.2

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

3、python版本:python3.6.0

4、python庫:subprocess

調(diào)用php函數(shù)

php命令行調(diào)用php文件中的函數(shù)

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";
}

// 獲取參數(shù),索引為0為調(diào)用的文件路徑,索引為1為調(diào)用的函數(shù),索引為2為函數(shù)傳入?yún)?shù)$s1,索引為3為函數(shù)參數(shù)$s2

var_dump($argv);
// exit;

// 調(diào)用函數(shù)
$func_name = $argv[1];


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

?>

terminal執(zhí)行php命令

# 字符串中包含空格、逗號、反斜杠,需要使用""來確定為1個參數(shù)
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."

執(zhí)行結(jié)果

利用python怎么調(diào)用php文件中的函數(shù)

python子進(jìn)程執(zhí)行php命令行

python文件:test.py,將test_hello.php與test.py放在同目錄下運(yùn)行

import subprocess


class Test(object):
 def run(self, cmd):
 proc = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE) # 開啟子進(jìn)程
 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)

上述內(nèi)容就是利用python怎么調(diào)用php文件中的函數(shù),你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI