手机版

php iostream详细说明和示例代码

时间:2021-09-07 来源:互联网 编辑:宝哥软件园 浏览:

最近在学习http协议!为了更好的理解http协议,来看看nodejs的http模块吧!我觉得我收获了很多。例如,我使用http请求发送一个请求:

var options={ host : ' localhost ',port: 80,path: '/backbone/data.php ',method : ' POST ' };var req=http.request(选项,函数(RES){ console . log(' status : ' RES . statuscode);console . log(' headers : ' JSON . stringify(RES . headers));RES . setencoding(' utf8 ');res.on('data ',function(chunk){ console . log(' body : ' chunk);});});//将数据写入request body req . end(' name=lizhangage=28 ');上面代码的意思是发送数据' name=liuzhagage=28 ',回调是响应的对象,打印出服务器响应的数据!

data.php代码是

print _ r($ _ POST);

打印传输的数据!

在命令行上运行的结果是

可以看到Array是空的,即$_POST没有数据。一开始我还以为数据没传呢!但是我把后端的data.php改成了

echo file _ get _ contents(' PHP ://input ');

收到传输的数据!

Php://input是一个只读流,可以访问请求的原始数据。在POST请求的情况下,最好使用php://input,而不是$HTTP_RAW_POST_DATA,因为它不依赖于特定的php.ini指令。在这种情况下,默认情况下不填充$HTTP_RAW_POST_DATA,这可能比激活always_populate_raw_post_data需要更少的内存。当enctype='multipart/form-data '时,PHP ://输入无效。

只有根据申请类型/x-www-form-urlencoded提交数据才能获得$_POST。表单的enctype属性是编码的,常用的方法有两种:application/x-www-form-URL encoded和multipart/form-data,默认为application/x-www-form-URL encoded。获取操作后,浏览器将表单数据转换为字符串(名称1=值1名称2=值2.)通过使用x-www-form-urlencoded的编码方法,然后将字符串追加到url,并使用?拆分并加载这个新的网址。当动作发布后,浏览器将表单数据封装到http主体中,然后将其发送到服务器。

当我们将发送选项更改为

var options={ host : ' localhost ',port: 80,path: '/backbone/data.php ',method: 'POST ',header : { ' Content-Type ' : ' application/x-www-form-URL encoded ' } };添加一个标题内容类型来接收带有$_POST的数据!如果不是这种表单类型,可以使用原始输入接收数据!

以上是PHP iostream的数据整理,后续继续补充相关数据。感谢您对本网站的支持!

版权声明:php iostream详细说明和示例代码是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。