note 74061 added to function.parse-str
| From: | JoseLuisCastañoCabrales at osu1 dot php dot net | Date: | Thu, 22 Mar 2007 11:07:32 +0000 |
| Subject: | note 74061 added to function.parse-str | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-124706@lists.php.net to get a copy of this message | ||
<?php
// Here a new function which doing the same as parse_str for multilevel array
// very funny
// cabrales@web.de
function parseStr($data, &$ret = array()){
if (!is_array($data)){
return false;
};
foreach($data as $v){
if (eregi("(\[|\])", $v)) {
preg_match("#([^\[]+)(\[[^]]+\].*)#", $v, $treffer);
/* treffer[1] has the key 'children' */
$key = $treffer[1];
/* treffer[2] has the rest '[boby][age]=12' */
preg_match("#\[([^\[]+)\](.*)#", $treffer[2], $treffer);
$rest = $treffer[1].$treffer[2];
parseStr(array($key => $rest), $ret[$key]);
}
else {
$v = explode('=', $v);
$ret[$v[0]] = $v[1];
};
};
};
/* Es wird in einem Array umgewandelt */
$queryUrl = trim(urldecode($_SERVER['QUERY_STRING']));
$queryUrl = preg_replace_callback(
"#\&\#(\d+)\;#i",
create_function('$treffer','return chr($treffer[1]);'),
$queryUrl
);
$queryUrl = explode('&', $queryUrl);
parseStr($queryUrl, $result);
print_r($result);
//Saludos from Germany
?>
----
Server IP: 217.160.72.57
Probable Submitter: 212.144.221.154
----
Manual Page -- http://www.php.net/manual/en/function.parse-str.php
Edit -- https://master.php.net/note/edit/74061
Del: integrated -- https://master.php.net/note/delete/74061/integrated
Del: useless -- https://master.php.net/note/delete/74061/useless
Del: bad code -- https://master.php.net/note/delete/74061/bad+code
Del: spam -- https://master.php.net/note/delete/74061/spam
Del: non-english -- https://master.php.net/note/delete/74061/non-english
Del: in docs -- https://master.php.net/note/delete/74061/in+docs
Del: other reasons-- https://master.php.net/note/delete/74061
Reject -- https://master.php.net/note/reject/74061
Search -- https://master.php.net/manage/user-notes.php