python和php通信

http://fc-lamp.blog.163.com/blog/static/174566687201111164310909/

https://code.google.com/p/ppython/

最简单的情况:php调用python

Calling Python in PHP

提到了用:

system() 或 popen()

  • 如果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

原文地址:https://www.cnblogs.com/youxin/p/3061246.html