URL zerlegen

N’abend,
mit parse_url kann man eine URL zerlegen, das ist mir bekannt.
Momentan nutze ich folgende Zeile um rauszufinden, auf welcher Seite ich mich befinde:
$tmp=explode("/",$_SERVER[‚PHP_SELF‘]);

mit
$elements=count($tmp);
$navigation_active=$tmp[$elements-1];

habe ich die Info, welche „Datei“ grade aufgerufen wurde.

Wenn ich jetzt jedoch eine URL habe z.B. text.php?id=12
bekomme ich als Ergebnis des oben genannten Codes nur ‚text.php‘
Wie bekomme ich den ganzen Teil also ‚text.php?id=12‘
eingelesen?

Für Hilfe im voraus dankend

Gruß

Marcel

Öhm… gehört das überhaupt in dem Sinne zur URL? Müsstest du das nicht aus den GET-Variabeln rauslesen?

Kannst ja mal mit
foreach ($_GET … wasauchimmer };

rumprobiern… weiß nicht was du insgesamt vor hast :wink:

Nachtrag
vielleicht irgendwas wie

$getzeugs = „?“;
foreach ($_GET as $key => value) $getzeugs.= „$key=$value&“;

Damit müsstest du wieder haben, was hinten dran steht.

Hallo martys,
danke für deine schnelle Antwort.
Derzeit versuche ich die Navigation über die Variable zu steuern.
Sprich es wird ausgelesen auf welcher Seite man sich befindet und dann wird der entsprechende Punkt in der Navi als aktiv makiert.
Leider ist es aber nicht immer gegeben, dass GET-Variablen mitgesendet werden.
Werde deine Idee mal durchtesten, scheint mir aber vielversprechend zu sein.

Gruß

Marcel

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

erledigt!!! DANKE
Hallo nochmal,
hab’s grad direkt getestet,
lese nun mit folgendem Code den aktiven Link ein:

$tmp=explode("/",$\_SERVER['PHP\_SELF']);
$elements=count($tmp);
foreach ($\_GET as $key =\> $value) {$getzeugs.= "?$key=$value";}
$navigation\_active=$tmp[$elements-1].$getzeugs;

Und setzte dann den entsprechenden LInk in der Navigation auf aktiv.
Klappt mit oder ohne $_GET-Variable am Ende der URL.

Nochmals vielen Dank!!!

Gruß

Marcel

Einfacher…
Hallo Marcel,

lese nun mit folgendem Code den aktiven Link ein:

$tmp=explode("/",$_SERVER[‚PHP_SELF‘]);
$elements=count($tmp);
foreach ($_GET as $key => $value) {$getzeugs.=
„?$key=$value“;}
$navigation_active=$tmp[$elements-1].$getzeugs;

Dies produziert aus www.domain.com/soundso/punkt1.php?a=2&b=3&c=4
etwas umständlich sowas:

punkt1.php?a=2 **?** b=3 **?** c=4

Einfacher und mit dem glaub ich gewünschten Ergebnis:

$navigation\_active = substr(strrchr($\_SERVER['PHP\_SELF'], '/'), 1).'?'.$\_SERVER['QUERY\_STRING'];

The simpler the better :wink:

Du könntest auch einfach

$navigation\_active = substr(strrchr($\_SERVER['REQUEST\_URI'], '/'), 1);

schreiben, aber dann kannst Du in den Get-Variablen keine Forward-Slashes übergeben.

Ciao,
Rudy