PayPal的PHP IPN监听器示例代码顶部有这个注释/代码:
// reading posted data from directly from $_POST causes serialization
// issues with array data in POST
// reading raw POST data from input stream instead.
$raw_post_data = file_get_contents('php://input');
$raw_post_array = explode('&', $raw_post_data);
$myPost = array();
foreach ($raw_post_array as $keyval) {
$keyval = explode ('=', $keyval);
if (count($keyval) == 2)
$myPost[$keyval[0]] = urldecode($keyval[1]);
}
有人能解释一下这条评论所提到的序列化问题吗?虽然我可以按照这种方式操作,但是如果知道为什么应该这样做,我会感觉更加舒适。
$_POST
并不总是包含与php://input
相同的内容。例如:key=val1&key=val2
将在$_POST
数组中只产生一个key
条目。而且,php://input
是只读的,而$_POST
不是。 - Wesley Murchparse_str
,而要用这种方式呢?难道它有一些奇怪的特性吗?毕竟,它使用的是生成$_GET
和$_POST
的相同代码... - Charlesif(get_magic_quotes_gpc())
和curl_setopt_array()
。 - StackSlave