借助curl理解$GLOBALS['HTTP_RAW_POST_DATA'],$_POST,php://input
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了借助curl理解$GLOBALS['HTTP_RAW_POST_DATA'],$_POST,php://input,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1667字,纯文字阅读大概需要3分钟。
内容图文
发送请求代码post.php
<?php$url='http://localhost/web/curl/url.php';$data='a=123|b=2&c=3';$header=array();//$header[]="content-type:text/xml";$ch=curl_init($url);curl_setopt($ch,CURLOPT_POST,1);curl_setopt($ch,CURLOPT_POSTFIELDS,$data);curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);curl_setopt($ch,CURLOPT_HTTPHEADER,$header);$con=curl_exec($ch);curl_close($ch);print_r($con);
接收请求的代码
url.php
<?phpecho "HTTP_RAW_POST_DATA:
";print_r($GLOBALS["HTTP_RAW_POST_DATA"]);echo "post:
";print_r($_POST);echo "
input:
";print_r(file_get_contents("php://input"));echo "
";echo "CONTENT_TYPE:".($_SERVER['CONTENT_TYPE']);
post.php执行结果
HTTP_RAW_POST_DATA:
post:
Array ( [a] => 123|b=2 [c] => 3 )
input:
a=123|b=2&c=3
CONTENT_TYPE:application/x-www-form-urlencoded
1.说明当没传content-type时 php默认是application/x-www-form-urlencoded ,此时php可识别 ,$GLOBALS["HTTP_RAW_POST_DATA"] 为空,post即为识别后生成的数组,php://input 获取原始数据
如果穿的数据时123456 $_POST里因为没key也是无数据的,php://input里还是原始数据
2.如果设置$header[]="content-type:text/xml";
执行结果是
HTTP_RAW_POST_DATA:
a=123|b=2&c=3
post:
Array ( )
input:
a=123|b=2&c=3
CONTENT_TYPE:text/xml
此时Post里是没数据的,HTTP_RAW_POST_DATA 里有数据
php://input 里始终是原始数据
综上所诉:
当content-type为默认的 application/x-www-form-urlencoded 时php可处理Post过来的数据并组合生成$_POST数组 $GLOBALS["HTTP_RAW_POST_DATA"] 里此时无值
当content-type为其它类型时php不能处理,生成不了$_POST数组,$GLOBALS["HTTP_RAW_POST_DATA"]里和php://input里都是原始数据
php://input在任何情况下均是最原始post来的数据
内容总结
以上是互联网集市为您收集整理的借助curl理解$GLOBALS['HTTP_RAW_POST_DATA'],$_POST,php://input全部内容,希望文章能够帮你解决借助curl理解$GLOBALS['HTTP_RAW_POST_DATA'],$_POST,php://input所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。