RegEx Wörter zwischen Zeichen separieren

Johnnii360

Erfahrenes Mitglied
Servus zusammen!

Sitze jetzt schon fast 1 Stunde an dem Kack RegEx und bekomm's einfach nicht hin. Hab schon zig Kombis auf der Seite http://www.regexr.com ausprobiert, aber keine lieferte mir das gewünschte Ergebnis.

Ich möchte gerne in einer URL sämtliche Wörter zwischen einem & und = separieren bzw. via preg_match() auslesen. Meine aktuelle Pattern /\&+\w+\=/i liefert mir aber die Wörter INKL. der Sonderzeichen und in PHP sieht das Ganze dann auch schon wieder anders aus - da bekomm ich in der Array nur ein Ergebnis angezeigt obwohl es mehr in der URL/URI gibt.

Beispiel-URL:
Code:
https://localhost/testgelaende.php?moep=blah&test=1&testa=2
 
Hallo Johnni,

Sitze jetzt schon fast 1 Stunde an dem Kack RegEx und bekomm's einfach nicht hin.
Dass du schon so viel Zeit damit vergeudet hast, tut mir leid für dich, denn eine Google-Suche hätte dir für php get parameters from url im dritten Suchergebnis eine Lösung mit in PHP eingebauten Funktionen präsentiert: http://stackoverflow.com/a/11480852/603003

Eine kurze Abänderung für dein Beispiel habe ich dir auch gemacht: http://codepad.org/knvpRRQl

Ich weiß aus eigener Erfahrung, dass man mit RegExps viel Zeit verbringen kann :) Sie sind aber auch nicht immer die beste Lösung.
 
Danke für Deine Ausführungen und Hilfe! :)

Zwar gibt Dein Script nur die Array-Werte aus und nicht die Array-Schlüssel, aber dafür gibt's ja auch was in PHP. ;) Das dürfte kein Problem sein.
 
Alles was du brauchst, ist eigentlich parse_str():

PHP:
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL | E_STRICT);

parse_str($_SERVER['QUERY_STRING'], $allQueryParams);

var_dump($allQueryParams);

array (size=2)
'foo' => string 'a' (length=1)
'bar' => string 'b' (length=1)
 
Zurück