在PHP函数中运行Python可能吗?

0 投票
2 回答
1589 浏览
提问于 2025-04-16 21:53

我需要执行一个Python脚本,但问题是我之前从来没有用过Python。

import urlib

import urlib2

data={'username':'xyz', 'secret':'12312'}

encoded_data = urllib.urlencode(data)

open_url= urllib2.url

open('www.abc.com/api/',encoded_data)

print open_url.read()

现在我想在我的PHP函数中使用这个脚本,所以我想问的是:

我该怎么启动这个Python脚本?我需要导入一些东西,比如库之类的吗?

我想在我的PHP函数中运行这个脚本(我正在使用codeigniter)。

2 个回答

1

假设你是在一台Linux电脑上操作……

首先,在你的终端里输入:

chmod +x my_python_script.py

这条命令会给当前用户的Python脚本添加执行权限。

接下来,在你的Python脚本的第一行加上这一行("/usr/bin/python"是Python程序默认的存放位置;你可能需要根据实际情况修改这个路径):

#!/usr/bin/python

这行代码会告诉系统用哪个程序来执行你的脚本。

最后,这是你的PHP代码:

<?php
  $output = shell_exec('my_python_script.py');
  echo "<pre>$output</pre>";
?>

这段代码只是简单地把Python脚本当作一个命令来执行。

2

我个人觉得,如果你的Python脚本内容就是这样,那你可以直接用PHP里的curl来替代你调用Python脚本的方式。

这里有一个基本的例子: http://www.php.net/manual/en/curl.examples-basic.php

<?php

    $ch = curl_init("http://www.example.com/");
    $fp = fopen("example_homepage.txt", "w");

    curl_setopt($ch, CURLOPT_FILE, $fp);
    curl_setopt($ch, CURLOPT_HEADER, 0);

    curl_exec($ch);
    curl_close($ch);
    fclose($fp);
?>

撰写回答