String-URL splitten

dsNDesign

Erfahrenes Mitglied
Hei,
Ich habe einen String mit folgendem Format:
host.com?after=123

Wenn die URL in der Adresszeile steht, kann man sich ja normalerweise den Wert von "after" mit $_GET holen. Die "URL" liegt mir jetzt aber nur als String in einer Variable vor. Gibt es da etwas ähnliches, oder muss ich den String manuell splitten?

Gruß
 
parse_url ist mal ein Anfang. Ich abe rasch eine Funktion geschrieben die den Query-String weiter zerlegt
PHP:
$url = 'host.com?after=123&action=save';
$get = (getUrlParams($url));
var_dump($get);

/**
 * Extrahiert alle Parameters eines URL-Strings
 * @param  String $url            URL-String
 * @return Array<String, String>  Array mit allen paramtern. Der Parameter-Name ist der Array-Key
 */
function getUrlParams($url){
    $params = array();
    //URL-Query extrahieren
    $analyse = parse_url($url);
    if(isset($analyse['query'])){
        //Alle Paramter auslesen
        foreach(explode('&', $analyse['query']) as $paramsString){
            //Name vom Wert trennen
            list($paramName, $paramValue) = explode('=', $paramsString);
            //und in unseren Array schreiben
            $params[$paramName] = $paramValue;        
        }
    }
    return $params;
}
Ausgabe:
Code:
array(2) {
  ["after"]=>
  string(3) "123"
  ["action"]=>
  string(4) "save"
}
 
weil ich nicht auf parse_str() sondern auf parse_url() verwiesen habe.
Aber du hast recht. Ist natürlich viel eleganter
 
Zurück