PHP parse URL – URL String in Bestandteile zerlegen

Viktor Dite, Autor des Beitrags

Von - Publiziert in Gedankenstütze
Dipl. Informatiker und Tech-Blogger seit 2006.


PHP bringt eigentlich eine eigene Funktion zum parsen von URLS mit: url_parse(). Diese hat aber einen kleinen Nachteil. Die URL Parameter werden nur als ein einziges gemeinsames Bestandteil zurückgegeben. Meistens möchte man aber die Parameter einzeln haben. Das lässt sich dann entweder mit einem explode machen oder eben mit der hier vorgestellten Methode ganz einfach realisieren.

Beispiel: So wird normalerweise ein URL-String mit PHP in seine Bestandteile zerlegt

$url=parse_url('http://www.tld.de/seite.php?id=23&sort=true');

Dann schaut $url wie folgt aus:

Array
(
    [scheme] => http 
    [host] => www.tld.de 
    [path] => /seite.php 
    [query] => id=23&sort=true
)

Das Problem liegt nun jetzt noch darin, dass die Parameter nicht einzeln extrahiert wurden. Beim Parsen einer URL ist man aber meistens ja darauf scharf! Hier hilft eine Funktion von „ashley at ashleywilson dot com dot au“:

PHP get URL Parameter

function parse_url_detail($url){
    $parts = parse_url($url);
    if(isset($parts['query'])) {
        parse_str(urldecode($parts['query']), $parts['query']);
    }
    return $parts;
}

So sehe

$url=parse_url('http://www.tld.de/seite.php?id=23&sort=true');

dann aus:

Array 
( 
  [scheme] => http 
  [host] => www.tld.de 
  [path] => /seite.php 
  [query] => Array 
  ( 
    [id] => 23 
    [sort] => true 
  ) 
)

Und Du könntest mit $url['query']['id'] oder $url['query']['sort'] auf die einzelnen Parameter zugreifen.


Letzte Änderung: