POSTした生のデータがほしいとき
PHPは
<input name="foo[123]"> <input name="foo[123]_bar">
ってあった場合、$_POSTとしては$_POST[foo]しか返ってこない。
まぁ、あんまないけど、とりたい場合はfile_get_contents('php://input');を使う。
で、もうちょっと
<?php function post_raw_data($as_array = true) { $data = file_get_contents('php://input'); $post = array(); foreach (explode('&', $data) as $d){ list($name, $value) = explode('=', $d); $name = urldecode($name); $value = urldecode($value); if ($as_array){ if (preg_match('/^(.*)\[(.*)\](.*)$/', $name, $m)){ $name = $m[1].$m[3]; if (!isset($post[$name])){ $post[$name] = array(); } $post[$name][$m[2]] = $value; } else { $post[$name] = $value; } } else { $post[$name] = $value; } } return $post; }