$_POST、file_get_contents ("php://input") 的区别
一. $_POST
当 HTTP POST 请求的 Content-Type 是 application/x-www-form-urlencoded 或 multipart/form-data 时, 会将变量以关联数组形式传入当前脚本.
二. file_get_contents ("php://input")
php:// - 访问各个输入/输出流(I/O streams)
php://input 是个可以访问请求的原始数据的只读流. POST 请求的情况下, 最好使用 php://input 来代替 $HTTP_RAW_POST_DATA, 因为它不依赖于特定的 php.ini 指令. 而且, 这样的情况下 $HTTP_RAW_POST_DATA 默认没有填充, 比激活 always_populate_raw_post_data 潜在需要更少的内存. enctype="multipart/form-data" 的时候 php://input 是无效的.
总结:
1、如果是 application/x-www-form-urlencoded 和 multipart/form-data 格式 用 $_POST;
2、如果是 text/xml, application/json, application/octet-stream, 使用 file_get_contents ('php://input')
阅读(813) | 评论(0) | 转发(0) |