Wie kann man mit php teil einer URL auslesen?

5 Antworten

Es gibt hier ja schon eine Menge guter Antworten, wollte nur noch mal auf die PHP Funktion parse_url() hinweisen.

http://php.net/manual/de/function.parse-url.php

Hier bekomnst Du, neben vielen anderen Infos, den Pfad zurück.

$parseInfo=parse_url($URL);

Wenn Du den pfad in ein array wandelst,

$parseInfo=parse_url($URL);
$pfadelemente=split("/",$parseInfo['path']);
var_dump($pfadelemente);

hast Du Scheme, Host, Querystrings, und Endungen schon weg.

Jetzt kannst Du problemlos auf die einzelnen array-Elemente, also die Pfadfragmente, zugreifen.

So würde ich das lösen:


function getScriptName()
{
$url = trim($_SERVER['REQUEST_URI'], "/");
$parts = explode("/", $url);
if(count($parts))
{
$last = array_pop($parts);
if(strpos($last, ".php") !== false)
{
return str_replace(".php", "", $last);
}
}
return false;
}

$aktuelleseite = getScriptName();
if($aktuelleseite)
{
echo $aktuelleseite;
}
else
{
echo "Kein Php-Skript";
}


Du kannst auch beide scripte nacheinander durchlaufen lassen...

mit $_SERVER['SCRIPT_NAME'];?


max1501 
Beitragsersteller
 03.10.2016, 19:14

Dann zeigt er an /bla/test.php

Das kannst du mithilfe von Regulären Ausdrücken lösen, verwende die Methode preg_replace:

$str = "localhost/Bla/test.php";

$ret = preg_replace("~^localhost/Bla/(\w+).php$~", "$1" , $str);

echo $ret; //Ergebnis: test

max1501 
Beitragsersteller
 03.10.2016, 19:23

ok habs jetzt... vielen dank. :D

max1501 
Beitragsersteller
 03.10.2016, 19:16

aber ich kann die url nicht angeben, da es immer eine unterschiedliche ist

Eddcapet  03.10.2016, 19:18
@max1501

Aber ein bestimmter Teil der URL ist ja immer fest, bei dir z.B. "localhost". Kannst du mal ein paar weitere Beispiel URL's angeben?

max1501 
Beitragsersteller
 03.10.2016, 19:20
@Eddcapet

nur das ende ändert sich immer also

localhost/bla/Test.php

localhost/bla/test1.php

localhost/bla/test2.php
 usw.