热搜:NVER node 开发 php

php处理post原始数据问题(在线等)

2024-09-15 16:00:01
php处理post原始数据问题(在线等)

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格式的串?

请高手指点,感谢!


回复讨论(解决方案)

那要看你收到的都是什么
还要看你打算从收到的内容中加工出什么

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

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

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

是对php不太熟悉,软件端会写,不过已经有思路了,感谢楼上几位的回复。
json的话php有自带函数,生成了想要的json后,echo出去就好。接受的内容就是对php://input进行字符串处理,处理成你想要的。

使用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.com

kkk.txt文件内容:
username:1111
localhost:2.2.2.2
username:2222
localhost:2.2.2.2

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


你还是把你的需求在说明一下吧

谢谢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.

全部对应?还是只要存在就算?
比如
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

早啊,只要存在就算

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

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

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


是的,就是这个意思

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


感谢xuzuning,我再试试。