关于PHP中POST传递参数问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于PHP中POST传递参数问题相关的知识,希望对你有一定的参考价值。

参考技术A 将数据转换成 json 格式的字符串, 并通过 CURL 的 POST 的形式传递参数给服务端, 但是在服务端无法用 $_POST 获取到数据。后台用 $_POST 获取到的信息为空, 但是可以通过 $post = file_get_contents("php://input") 获取到请求的相关信息。

Coentent-Type 的值为 application/x-www-data-urlencode 和 multipart/form-data 时, php才会将http请求数据包中的数据填进 $_POST 。

如果 POST 的原始数据是一维数组或&拼接的标准格式的键值对字符串,那么可以用 $_POST 来获取。
如果要通过 file_get_contents 获取,这种情况下可以发送 json 字符串,用 json_encode 编码转换一下,或者使用 http_build_query 。

1、 区别 PHP 的 $_POST、$HTTP_RAW_POST_DATA 和 php://input
2、 accept 和 content-Type区别
3、 Http Header里的Content-Type

关于在php中使用curl发送get请求时参数传递问题的解析

get请求是最简单的请求,不过要注意自己的请求是http请求还是https的请求,因为https请求时要关闭SSL验证,不然验证通不过,没有办法请求到数据。

GET请求的参数

get传递参数和正常请求url传递参数的方式一样

 1 function get_info($card){
 2   $url ="http://www.sdt.com/api/White/CardInfo?cardNo=".$bank_card; 
 3   $ch = curl_init();
 4   //设置选项,包括URL
 5   curl_setopt($ch, CURLOPT_URL, $url);
 6   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 7   curl_setopt($ch, CURLOPT_HEADER, 0);
 8   //执行并获取HTML文档内容
 9   $output = curl_exec($ch);
10   //释放curl句柄
11   curl_close($ch);
12   return $output;
13 }

HTTPS请求时要注意SSL验证

function get_bankcard_info($bank_card){
  $url="https://ccdcapi.alipay.com/validateAndCacheCardInfo.json?_input_charset=utf-8&cardNo=".$bank_card."&cardBinCheck=true";
  $ch = curl_init();
  //设置选项,包括URL
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_HEADER, 0);
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);//绕过ssl验证
  curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
  //执行并获取HTML文档内容
  $output = curl_exec($ch);

  //释放curl句柄
  curl_close($ch);
  return $output;
}

以上是关于关于PHP中POST传递参数问题的主要内容,如果未能解决你的问题,请参考以下文章

php怎么传递参数

php href 传递参数问题

为啥 PHP 不使用传递的参数填充 $_POST?

PHP如何不用表单进行POST传递

php参数传递的常用方法详解

post的参数传递长度有限制吗