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接收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表单域
-
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使用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数据至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文件向另一个地址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基于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中使用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数据
废话不多说直接上代码 复制代码 代码如下: /********************** curl 系列 ***********************///直接通过curl方式取得数据(包含POST.HEADER等)/* * $url: 如果非数组,则为http;如是数组,则为https * $header: 头文件 * $post: post方式提交 array形式 * $cookies: 0默认无cookie,1为设置,2为获取 */public function curl_allinf
-
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的cURL库功能简介 抓取网页、POST数据及其他
无论是你想从从一个链接上取部分数据,或是取一个XML文件并把其导入数据库,那怕就是简单的获取网页内容,反应釜cURL 是一个功能强大的PHP库.本文主要讲述如果使用这个PHP库. 启用 cURL 设置 首先,我们得先要确定我们的PHP是否开启了这个库,你可以通过使用php_info()函数来得到这一信息. 复制代码 代码如下: <?php phpinfo(); ?> 如果你可以在网页上看到下面的输出,那么表示cURL库已被开启. 如果你看到的话,那么你需要设置你的PHP并开启这个库.如果你是在
-
浅谈PHP接收POST数据方式
通常情况下用户使用浏览器网页表单向服务器post提交数据,我们使用PHP接收用户POST到服务器的数据,并进行适当的处理.但有些情况下,如用户使用客户端软件向服务端php程序发送post数据,而不能用$_POST来识别,那又该如何处理呢? $_POST方式接收数据 $_POST方式是通过 HTTP POST 方法传递的变量组成的数组,是自动全局变量.如使用$_POST['name']就可以接收到网页表单以及网页异步方式post过来的数据,即$_POST只能接收文档类型为Content-Type:
随机推荐
- 用htc实现验证模块
- 让Windows Server 2008上网冲浪得心应手的设置方法
- MySQL中REGEXP正则表达式使用大全
- jQuery使用正则表达式限制文本框只能输入数字
- 安装IIS发布我的第一个网站图文教程
- asp.net AjaxControlToolKit--TabContainer控件的介绍
- 8个必备的PHP功能实例代码
- php 判断字符串中是否包含html标签
- 详解vue-router和vue-cli以及组件之间的传值
- Windows系统中安装nodejs图文教程
- 获取两个日期间隔时间的shell脚本代码
- 什么是XHTML?
- Python批量查询域名是否被注册过
- javascript使用activex控件的代码
- 深入探讨Java多线程中的volatile变量
- SpringMVC集成Swagger实例代码
- js 函数的副作用分析
- Andorid 日历控件库,可左右滑动,显示公历,农历,节假日等功能
- Java编程实现轨迹压缩算法开放窗口实例代码
- PHP+ajax实现二级联动菜单功能示例