XX软件,去连接hxxp://www.test.com/input.php
当通信连接好后这个XX软件就发送一个文本文件比如:abc.txt
然后php运算后,反回一段jason串给这个软件,最后软件运行相应的功能。 如果这个XX软件发送abc.txt(内容verify,deny,not commit等信息),php运算后就返回{"id":xxx,"url":"xxx","port":"xxx"}
这样的php应该怎么写呢?我尝试使用php://input接收abc.txt,但接收后应该怎么处理,以及处理后怎么返回jason格式的串?请高手指点,感谢!

解决方案 »

  1.   

    php收到的文件信息会存在$_FILE全局数组里面,然后通过move_uploaded_file把txt文件移到服务端,接着用file_get_contents得到txt里面的内容,然后对内容处理,产生json,最后echo该json
      

  2.   

    xx软件 发送数据到 php处理页面 然后该怎么写就怎么写
    你php不会写 还是软件端不会写?delphi?
      

  3.   

    是对php不太熟悉,软件端会写,不过已经有思路了,感谢楼上几位的回复。
      

  4.   

    json的话php有自带函数,生成了想要的json后,echo出去就好。接受的内容就是对php://input进行字符串处理,处理成你想要的。
      

  5.   

    使用php://input接收到post过来的abc.txt文件后,需要读取文件第二行至第五行,与服务器上的kkk.txt文件内容对比(username,localhost),并返回true或flase,使用file()函数将abc.txt文件读入数组后怎么比较呢,还请指点。
    abc.txt文件内容:
    verify:local
    username:1111
    localhost:2.2.2.2
    username:2222
    localhost:2.2.2.2
    test.comkkk.txt文件内容:
    username:1111
    localhost:2.2.2.2
    username:2222
    localhost:2.2.2.2
      

  6.   

    使用php://input接收abc.txt
    这你已经实现了,假定读到的数据在 $inp 中
    $inp = preg_split("/[\r\n]+/", file_get_contents('php://input'));
    $ing = array_slice($inp, 1, -1);//斩头去尾
    你还是把你的需求在说明一下吧
      

  7.   

    谢谢xuzuning,我已经将xx软件post过来的abc.txt文件保存到服务器当前路径下了:file_put_contents('abc.txt',$input);
    打算使用file()函数将abc.txt文件再读入数组,依次与服务器上的kkk.txt文件对比,如果abc.txt文件中的username、localhost与kkk.txt文件中的username、localhost数据一致,返回true,否则返回flase.
      

  8.   

    全部对应?还是只要存在就算?
    比如
    username:1111
    localhost:2.2.2.2
    username:2222
    localhost:3.3.3.3

    username:2222
    localhost:2.2.2.2
    username:1111
    localhost:3.3.3.3
      

  9.   

    是否是只要 kkk.txt 的所有行,都在 abc.txt 中出现了就可以?
    而不管 abc.txt 可能还有其他内容的行?
      

  10.   

    既然客户端和服务器端都可控,文本不大的话不必上传,直接在客户端发送一个post请求就行
    php只需要用$_POST就能接收了
      

  11.   

    是否是只要 kkk.txt 的所有行,都在 abc.txt 中出现了就可以?
    而不管 abc.txt 可能还有其他内容的行? 
    是的,就是这个意思
      

  12.   

    $t = array_diff(file('kkk.txt', FILE_IGNORE_NEW_LINES), file('abc.txt', FILE_IGNORE_NEW_LINES));