python跟php_python和php通信

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说明:

然后把popen的参数,改为对应的python文件的路径,应该就可以了。

例子:

test.py

import sys

print sys.argv

php:

<?phperror_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

另一篇:

今天使用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问题:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值