1. 用$_POST获取不到post的数据

一般情况下,我们可以用$_POST来取POST的值,但是有些情况下是获取不到的,这和HTTP请求头 content-type 有关:

  1. 当content-type是 application/x-www-form-urlencoded 时,是以表单的方式提交数据,php可以使用 $_POST 方式获取数据。
  2. 当content-type是 application/json 时,是以json方式提交数据,php需要使用 file_get_contents("php://input") 的方式获取数据(输入流),使用$_POST方式无法获取POST过来的数据。

    2. 获取到的数据有奇怪的字符

    当使用 file_get_contents(“php://input”) 获取post数据时,会将数据的某些特殊字符转义为HTML格式的字符:

  3. 使用函数:htmlspecialchars_decode ($string, $quote_style = null)来将特殊的HTML实体转换回字符