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。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

(0)

相关推荐

  • 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接收POST数据方式

    通常情况下用户使用浏览器网页表单向服务器post提交数据,我们使用PHP接收用户POST到服务器的数据,并进行适当的处理.但有些情况下,如用户使用客户端软件向服务端php程序发送post数据,而不能用$_POST来识别,那又该如何处理呢? $_POST方式接收数据 $_POST方式是通过 HTTP POST 方法传递的变量组成的数组,是自动全局变量.如使用$_POST['name']就可以接收到网页表单以及网页异步方式post过来的数据,即$_POST只能接收文档类型为Content-Type:

  • PHP的cURL库功能简介 抓取网页、POST数据及其他

    无论是你想从从一个链接上取部分数据,或是取一个XML文件并把其导入数据库,那怕就是简单的获取网页内容,反应釜cURL 是一个功能强大的PHP库.本文主要讲述如果使用这个PHP库. 启用 cURL 设置 首先,我们得先要确定我们的PHP是否开启了这个库,你可以通过使用php_info()函数来得到这一信息. 复制代码 代码如下: <?php phpinfo(); ?> 如果你可以在网页上看到下面的输出,那么表示cURL库已被开启. 如果你看到的话,那么你需要设置你的PHP并开启这个库.如果你是在

  • 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接收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获取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中使用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方式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

随机推荐