Frage von max1501, 48

Wie kann man mit php teil einer URL auslesen?

Guten Abend, ich wollte fragen, wie man mit php einen teil einer url ausliest. Undzwar ist die url bsp. localhost/Bla/test.php und ich möchte nur das Test haben ohne.php und ohne alles davor. Bis jetzt habe ich

$welche = $_SERVER["SERVER_NAME"] . $_SERVER["PHP_SELF"];
$titel = explode('.php',$welche);
$aktuelleseite = $titel[count($titel)-2];           

dann zeigt er mir an: localhost/Bla/test

und wenn ich

$welche = $_SERVER["SERVER_NAME"] . $_SERVER["PHP_SELF"];
$titel = explode('/',$welche);
$aktuelleseite = $titel[count($titel)-1];   

das zeigt ann: test.php. Vielen dank.

Antwort
von Bluewater1403, 5

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";
}


Antwort
von FabianHIF, 37

mit $_SERVER['SCRIPT_NAME'];?

Kommentar von max1501 ,

Dann zeigt er an /bla/test.php

Antwort
von Eddcapet, 31

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
Kommentar von max1501 ,

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

Kommentar von Eddcapet ,

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?

Kommentar von max1501 ,

nur das ende ändert sich immer also

localhost/bla/Test.php

localhost/bla/test1.php

localhost/bla/test2.php
 usw.

Kommentar von Eddcapet ,

Okay dann ist diese Lösung perfekt. Versuch es einfach mal, hab dir hier ein Snippet erstellt:
http://sandbox.onlinephpfunctions.com/code/383303465d63eade1caca90996608dc4b631f...

Kommentar von max1501 ,

ok habs jetzt... vielen dank. :D

Antwort
von CrEdo85wiederDa, 9

Du kannst auch beide scripte nacheinander durchlaufen lassen...

Keine passende Antwort gefunden?

Fragen Sie die Community