Hallo,
$s = 'foo=bar&dings=bums&so=undso';
echo $arr['foo'] Ausgabe => bar
Wie die anderen schon geschrieben haben gibt es fertige Funktionen dafür die man nutzen sollte. Nur falls die nicht das machen was man will könnte man es so hinbekommen (wobei da sehr viele Ausnahmefälle nicht beachtet werden) ungetestet:
function parse_query($string) {
$ret_arr = array();
$pairs = explode("&", $string);
foreach($pairs as $pair) {
list($key, $value) = explode("=", $pair);
$ret_arr[$key] = $value;
}
return $ret_arr;
}
parse_query("a=b&c=d");
// => array("a" => "b", "c" => "d")
In Ruby könnte man übrigens z.b. die String-Klasse zur Laufzeit um diese Methode erweitern (ob sie da hin gehören sollte ist eine andere Frage, das sollte natürlich ins CGI-Modul, aber nur um ein paar Vorteile von Ruby aufzuzeigen):
class String
def parse_query
Hash[self.split("&").map {|pair| pair.split("=")}]
end
end
"a=b&c=d".parse_query
# => {"a"=>"b", "c"=>"d"}
Hier sieht man dass Ruby auch sehr viele Anleihen aus Funktionalen Sprachen hat.
Jeena