zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    template
    open File Browser in shell
    自定义模板类型vs模板类型自动推测
    protobuffer
    多重继承&虚继承
    What I'm Researching
    JobTracker和TaskTracker
    MapReduce
    How To Use Google Flags
    Frequently Used Shell Commands
  • 原文地址:https://www.cnblogs.com/youxin/p/3061246.html
Copyright © 2011-2022 走看看