<?php
function correction_query() {
$post = '';
// Глобальные массивы
if (!$post && isset($_GLOBALS) && isset($_GLOBALS["HTTP_RAW_POST_DATA"]))
$post = $_GLOBALS["HTTP_RAW_POST_DATA"];
// Глобальные переменные
if (!$post && isset($HTTP_RAW_POST_DATA))
$post = $HTTP_RAW_POST_DATA;
// Потоки
if (!$post) {
if (!function_exists('file_get_contents')) {
$fp = fopen("php://input", "r");
if ($fp) {
$post = '';
while (!feof($fp))
$post = fread($fp, 1024);
fclose($fp);
}
} else {
$post = "" . file_get_contents("php://input");
}
}
$raw = !empty($_SERVER['QUERY_STRING']) ? sprintf('%s&%s', $_SERVER['QUERY_STRING'], $post) : $post;
$arr = array();
$pairs = explode('&', $raw);
foreach ($pairs as $i) {
if (!empty($i)) {
list($name, $value) = explode('=', $i, 2);
if (isset($arr[$name]) ) {
if (is_array($arr[$name]) ) {
$arr[$name][] = $value;
} else {
$arr[$name] = array($arr[$name], $value);
}
} else {
$arr[$name] = $value;
}
}
}
foreach ( $_POST as $key => $value ) {
if (is_array($arr[$key]) ) {
$_POST[$key] = $arr[$name];
$_REQUEST[$key] = $arr[$name];
}
}
foreach ( $_GET as $key => $value ) {
if (is_array($arr[$key]) ) {
$_GET[$key] = $arr[$name];
$_REQUEST[$key] = $arr[$name];
}
}
# Необязательно возвращать результат массива
return $arr;
}
?>