作家
登录

PHP与Golang如何通信?

作者: 来源: 2017-05-29 14:39:02 阅读 我要评论

  •       defer x.Free() 
  •   
  •       inputReader := bufio.NewReader(os.Stdin) 
  •       for { 
  •           s, err := inputReader.ReadString('\n'
  •           if err != nil && err == io.EOF { 
  •               break 
  •           } 
  •           s = strings.TrimSpace(s) 
  •   
  •           if s != "" { 
  •               words := x.CutForSearch(s, true
  •               fmt.Println(strings.Join(words, " ")) 
  •           } else { 
  •               fmt.Println("get empty \n"
  •           } 
  •       } 
  •   } 
  • 只须要简单的几行调剂,即可实现:大年夜标准输入接收字符串,经由分词再输出

    测试:

    1. # go build test 
    2. # ./test 
    3. # //等待用户输入,输入”这是一个测试“ 
    4. # 这是 一个 测试 //法度榜样 
    • 3:应用cat与Golang通信做简单测试
    1. //预备一个title.txt,每行是一句文本 
    2.  
    3. 1# cat title.txt | ./test 

    正常输出,表示cat已经可以和Golang正常交互了

    • 4:PHP与Golang通信

    以上所示的cat与Golang通信,应用的是单向管道。即:只能大年夜cat向Golang传入数据,Golang输出的数据并没有传回给cat,而是直接输出到屏幕。但文中的需求是:php与Golang通信。即php要传数据给Golang,同时Golang也必须把履行结不雅返回给php。是以,须要惹人双向管道。

    在PHP中管道的应用:popen("/path/test"),具体就不展开说了,因为此办法解决不了文中的问题。

    双向管道:

    1. $descriptorspec = array( 
    2.      0 => array("pipe""r"), 
    3.        1 => array("pipe""w"
    4.  ); 
    5.  $handle = proc_open( 
    6.      '/webroot/go/src/test/test'
    7.      $descriptorspec, 
    8.      $pipes 
    9.  ); 
    10.  fwrite($pipes['0'], "这是一个测试文本\n"); 
    11.  echo fgets($pipes[1]); 

    解释:应用proc_open打开一个过程,调用Golang法度榜样。同时返回一个双向管道pipes数组,php向$pipe['0']中写数据,大年夜$pipe['1']中读数据。


      推荐阅读

      LSTM之父预测人工智能奇点或在2030年到来|GMIS2017 上的AI大佬都说了啥

    5 月 27 日,由机械之心主办的为期两天的GMIS 2017 大年夜会在北京拉开帷幕。据悉,浩瀚来自瑞士、美国、加拿大年夜以及国内的浩瀚人工智能学术大年夜咖、业界大年夜牛都邑表态GMIS的舞台>>>详细阅读


    本文标题:PHP与Golang如何通信?

    地址:http://www.17bianji.com/lsqh/35483.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)