http://fc-lamp.blog.163.com/blog/static/174566687201111164310909/
https://code.google.com/p/ppython/
最简单的情况:php调用python
提到了用:
- 如果Python脚本没有输出,或者你想要Python脚本的输出是直接输出到浏览器的:用system()
- 如果你想要通过标准输入stdin去输入数据到Python中,或者是从Python的标准输出stdout中读取数据:用popen()
- popen只能读或写,不能同时实现两种效果(既读也写)
- 如果既要读也要实现写,则用:proc_open()
- 自己使用时,注意不要出现死锁了。
- 很明显,此处的你,就是这种情况,所以推荐用这个popen()
【总结】
根据你的情况,去用popen应该就够了。
关于具体如何使用,去看官网api说明:
http://php.net/manual/en/function.popen.php
然后把popen的参数,改为对应的python文件的路径,应该就可以了。
例子:
test.py
import sys
print sys.argv
php:
<?php error_reporting(E_ALL); $cmd="python test.py test"; $handle=popen($cmd,"r"); $data=fread($handle,4096); echo $data; pclose($handle);
http://blog.csdn.net/fishg/article/details/6138348
http://acmai.com/2013/04/125/
http://www.pythonclub.org/php/system-command
http://www.justwinit.cn/post/1418/
http://hi.baidu.com/cgeek/item/4f6710c6b1865d2cee4665a0
http://hi.baidu.com/cgeek/item/4f6710c6b1865d2cee4665a0
另一篇:
今天使用php、python结合写了一个简单的小玩意,python作为一个服务器监听本地的一个端口,php作为客户端向python服务器传递参数,python在服务器端执行ls -l并将结果返回给客户端。
代码如下:
#################################################################
server.py
#################################################################
#!/usr/bin/python
import socket
import subprocess
socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
socket.bind(('127.0.0.1',8001))
socket.listen(5)
while True:
connection,addr = socket.accept()
buf=connection.recv(1024)
d=subprocess.Popen('ls -l /tmp', stdout=subprocess.PIPE, shell=True)
connection.send("You give me" + buf+"\n")
connection.send("".join(d.stdout.readlines()))
connection.close()
####################################################################
client.php
####################################################################
<?php
$handle = fsockopen("127.0.0.1",8001);
if($handle) {
fputs($handle,"/home/sky/python");
while($line=fgets($handle,1024))
{
echo $line;
}
}
fclose($handle);
?>
调用com问题:
Net调用Office Com组件的原理及问题
http://www.dotblogs.com.tw/rainmaker/archive/2011/05/12/24944.aspx