Пример кода 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]); } Может ли кто-нибудь объяснить, к какой проблеме сериализации относится этот комментарий? Хотя я в порядке делаю это так, я бы чувствовал себя более комфортно, зная, почему так должно быть сделано.
Я не могу сказать вам мотивы PayPal, но я могу догадаться: php любит менять ключи входящих переменных с HTTP-запроса.
  Например, имя ab [ будет отображаться как $_POST['a_b__'] .  php заменит пробелы, точки и открытые скобки с символами подчеркивания: source: http://php.net/manual/en/language.variables.external.php 
  Кроме того, php будет анализировать хорошо сформированные совпадающие скобки в именах переменных в вложенные массивы.  например, arr[a][b] будет отображаться как $_POST['a']['b'] .  http://php.net/manual/en/faq.html.php#faq.html.arrays 
Кроме того, php ведет себя со всеми сумасшедшими и багги, когда скобки не сформированы: https://bugs.php.net/bug.php?id=48597
  Кроме того, magic_quotes_gpc использовал свои когти в каждой установке php, также изменяя имена переменных в некоторых случаях.  http://php.net/manual/en/security.magicquotes.php 
  Кроме того, php имеет параметр arg_seperator.input , и некоторым людям нравится устанавливать это в &  а не просто & .  Paypal не может знать, что вы предпочитаете, и, очевидно, всегда будет использовать & http://php.net/manual/en/ini.core.php#ini.arg-separator.input 
  Кроме того, несмотря на то, что это плохая практика, в php для библиотек / библиотек не так уж редко можно автоматически изменять входные данные запроса, такие как $_POST , например, для «дезинфекции» их или других подобных проблем с перекрестными разрезами. 
Разбирая ввод вручную, вы избегаете всех этих потенциальных проблем. Это решение похоже на хорошую технику с их стороны.