php获取POST数据的三种方法实例详解
php获取POST数据的三种方法
方法一,$_POST
$_POST或$_REQUEST存放的是PHP以key=>value的形式格式化以后的数据。
方法二,使用file_get_contents(“php://input”)
对于未指定 Content-Type 的POST数据,则可以使用file_get_contents(“php://input”);来获取原始数据。 事实上,用PHP接收POST的任何数据均使用本方法。而不用考虑Content-Type,包括二进制文件流也是可行的。
同$HTTP_RAW_POST_DATA比起来,它给内存带来的压力较小,并且不需要任何特殊的 php.ini 设置。
php://input无法读取Content-Type为multipart/form-data的POST数据,需要设置php.ini中的always_populate_raw_post_data值为On才可以。
php://input读取不到$_GET数据。是因为$_GET数据作为query_path写在http请求头部(header)的PATH字段,而不是写在http请求的body部分。
方法三,使用全局变量$GLOBALS[‘HTTP_RAW_POST_DATA']
在$GLOBALS[‘HTTP_RAW_POST_DATA']存放的是POST过来的原始数据。
但$GLOBALS[‘HTTP_RAW_POST_DATA']中是否保存POST过来的数据取决于centent-Type的设置,只有在PHP在无法识别的Content-Type的情况下,才会将POST过来的数据原样地填入变量$GLOBALS[‘HTTP_RAW_POST_DATA']中,象Content-Type=application/x-www-form-urlencoded时,该变量是空的。
另外,它同样无法读取Content-Type为multipart/form-data的POST数据,也需要设置php.ini中always_populate_raw_post_data值为On,PHP才会总把POST数据填入变量$http_raw_post_data。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
相关推荐
-
PHP中使用file_get_contents post数据代码例子
废话不多说,上代码: 复制代码 代码如下: $data = array( 'name' => 'Joe', 'website' => 'www.jb51.net' ); $data = http_build_query($data); $data = json_encode($data); $json = file_get_contents($url, 0, stream_context_create(array( 'http' => array(
-
浅谈PHP接收POST数据方式
通常情况下用户使用浏览器网页表单向服务器post提交数据,我们使用PHP接收用户POST到服务器的数据,并进行适当的处理.但有些情况下,如用户使用客户端软件向服务端php程序发送post数据,而不能用$_POST来识别,那又该如何处理呢? $_POST方式接收数据 $_POST方式是通过 HTTP POST 方法传递的变量组成的数组,是自动全局变量.如使用$_POST['name']就可以接收到网页表单以及网页异步方式post过来的数据,即$_POST只能接收文档类型为Content-Type:
-
PHP中使用socket方式GET、POST数据实例
1. 使用 PHP 获得网页内容 GET方式 复制代码 代码如下: <?php function socketGet($url, &$ret) { $urlArr = parse_url($url); $host = $urlArr['host']; $port = isset($urlArr['port'])?$urlArr['port']:80; $path = isset($urlArr['path'])?$urlArr['path']:"/"; $fp
-
PHP下使用CURL方式POST数据至API接口的代码
其实,也比较简单,上代码: 复制代码 代码如下: <?php $url = 'http://127.0.0.1/test.php';//POST指向的链接 $data = array( 'access_token'=>'thekeyvalue' ); $json_data = postData($url, $data); $array = json_decode($json_data,true);
-
PHP函数分享之curl方式取得数据、模拟登陆、POST数据
废话不多说直接上代码 复制代码 代码如下: /********************** curl 系列 ***********************///直接通过curl方式取得数据(包含POST.HEADER等)/* * $url: 如果非数组,则为http;如是数组,则为https * $header: 头文件 * $post: post方式提交 array形式 * $cookies: 0默认无cookie,1为设置,2为获取 */public function curl_allinf
-
php使用socket post数据到其它web服务器的方法
本文实例讲述了php使用socket post数据到其它web服务器的方法.分享给大家供大家参考.具体实现方法如下: function post_request($url, $data, $referer='') { // Convert the data array into URL Parameters like a=b&foo=bar etc. $data = http_build_query($data); // parse the given URL $url = parse_url(
-
PHP的cURL库功能简介 抓取网页、POST数据及其他
无论是你想从从一个链接上取部分数据,或是取一个XML文件并把其导入数据库,那怕就是简单的获取网页内容,反应釜cURL 是一个功能强大的PHP库.本文主要讲述如果使用这个PHP库. 启用 cURL 设置 首先,我们得先要确定我们的PHP是否开启了这个库,你可以通过使用php_info()函数来得到这一信息. 复制代码 代码如下: <?php phpinfo(); ?> 如果你可以在网页上看到下面的输出,那么表示cURL库已被开启. 如果你看到的话,那么你需要设置你的PHP并开启这个库.如果你是在
-
PHP基于CURL进行POST数据上传实例
本文实例讲述了PHP基于CURL进行POST数据上传的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: ////二维码 $QRCode_URL="https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=".$ACC_TOKEN; $data ='{"expire_seconds": 1800, "action_name": "QR_SCENE&q
-
如何从一个php文件向另一个地址post数据,不用表单和隐藏的变量的
可以使用以下函数来实现: <?php function posttohost($url, $data) { $url = parse_url($url); if (!$url) return "couldn't parse url"; if (!isset($url['port'])) { $url['port'] = ""; } if (!isset($url['query'])) { $url['query'] = ""; } $enc
-
PHP获取POST数据的几种方法汇总
一.PHP获取POST数据的几种方法 方法1.最常见的方法是:$_POST['fieldname']; 说明:只能接收Content-Type: application/x-www-form-urlencoded提交的数据 解释:也就是表单POST过来的数据 方法2.file_get_contents("php://input"); 说明: 允许读取 POST 的原始数据. 和 $HTTP_RAW_POST_DATA 比起来,它给内存带来的压力较小,并且不需要任何特殊的 php.ini
-
使用PHP接收POST数据,解析json数据
复制代码 代码如下: <?php $json_string = $_POST["txt_json"]; if(ini_get("magic_quotes_gpc")=="1") { $json_string=stripslashes($json_string); } $user = json_decode($json_string); echo var_dump($user);?> 在这个文件中,首先得到html文件中POST表单域
随机推荐
- cocos2dx骨骼动画Armature源码剖析(三)
- MSSQL转MYSQL的一些记录
- Python中的if、else、elif语句用法简明讲解
- 深入掌握 react的 setState的工作机制
- 基于PHP实现的事件机制实例分析
- js使用ajax读博客rss示例
- Vue.js教程之计算属性
- MySQL隐式类型的转换陷阱和规则
- IOS如何在Host App 与 App Extension 之间发送通知
- JavaScript实现GriwView单列全选(自写代码)
- java实现利用String类的简单方法读取xml文件中某个标签中的内容
- 写的一段拖动对象的代码
- 关于Ruby on Rails路由配置的一些建议
- Linux下执行java程序的方法
- spring aop 拦截业务方法,实现权限控制示例
- Android 图片添加水印的实现方法
- java 实现微信服务器下载图片到自己服务器
- Android Service判断设备联网状态详解
- php获取淘宝分类id示例
- 修改Android FloatingActionButton的title的文字颜色及背景颜色实例详解