在PHP函数中运行Python可能吗?
我需要执行一个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);
?>