从PHP脚本传值到Python脚本

23 投票
3 回答
43307 浏览
提问于 2025-04-16 11:41

我看了其他类似的问题,但还是搞不明白。

我有一个基本的php文件,它的功能是这样的:


?php
$item='example';
$tmp = exec("python testscriptphp.py .$item");
echo $tmp;
?

这个文件成功地调用了我在网络主机上运行的python程序。现在在我的python脚本中,我想要做一些类似这样的事情:


item=$item
print item

基本上,我想知道如何把变量从PHP传递到python脚本,然后如果需要的话再传回PHP。

谢谢!

3 个回答

-1

在PHP文件中

 $a = "..\Python\Python39\python.exe  ../frontend/upload/main.py '$param1''$param2'";

 $output = shell_exec($a);

 echo $output;

 ..\Python\Python39\python.exe 

这是我电脑上Python的路径,你可以把它换成你自己的路径

 ../frontend/upload/main.py      

这是我Python脚本的路径

在Python文件中

import sys

param_1_ = sys.argv[1]
param_2=  sys.argv[2]
4

写一个PHP文件,例子是index.php:

<?PHP
$sym = $_POST['symbols'];
echo shell_exec("python test.py .$sym");
?>

$sym是我们传递给test.py这个Python文件的一个参数。

然后创建一个Python示例,文件名是test.py:

import sys
print(sys.argv[1])

希望这对你有帮助。

31

虽然netcoder在他的评论中几乎已经给出了答案,这里有个例子:

从Python到PHP

example.py

import os
os.system("/usr/bin/php example2.php whatastorymark")

example2.php

<?php
    echo $argv[1];

?>

从PHP到Python

<?php
    $item='example';
    $tmp = exec("python testscriptphp.py .$item");
    echo $tmp;

?>

testscriptphp.py

import sys
print sys.argv[1]

这是PHP如何处理命令行参数的:http://php.net/manual/en/reserved.variables.argv.php。Python也是一样:http://docs.python.org/library/sys.html#sys.argv

撰写回答