.php entfernen
Nirgendwer
- php
Moin,
in einer Variable echo $UserSeite[2];
steht z.B. impressum.php ist nicht das was ich benötige. Ist es möglich dass ich alles was NACH dem . kommt entferne bzw. kann ich irgendwie anderes auf den Wert kommen?
Ich mach es so $UserSeite = explode("/", $_SERVER['REQUEST_URI']);
hi Nirgendwer,
Moin,
in einer Variable
echo $UserSeite[2];
steht z.B. impressum.php ist nicht das was ich benötige. Ist es möglich dass ich alles was NACH dem . kommt entferne bzw. kann ich irgendwie anderes auf den Wert kommen?Ich mach es so
$UserSeite = explode("/", $_SERVER['REQUEST_URI']);
mfg
tami
Hi Tami,
Und hier würde ich dieses dann so umsetzten?
$a1 = $UserSeite[2];
$b1 = array(".html");
$b2 = "";
echo $a1new = str_replace($b1, $b2, $a1);
Hi Tami,
Und hier würde ich dieses dann so umsetzten?
$a1 = $UserSeite[2];
$b1 = array(".html");
$b2 = "";
echo $a1new = str_replace($b1, $b2, $a1);
So einfach ist das alles nicht. Ich weiß ja nicht, was Du willst, aber auch nur halbwegs vollständig sähe das so aus:
~~~php
<?php
$tests[]='?foo=foo.bar/baz';
$tests[]='/';
$tests[]='/?foo=foo.bar/baz';
$tests[]='/test';
$tests[]='/test?foo=foo.bar/baz';
$tests[]='/test/';
$tests[]='/test/?foo=foo.bar/baz';
$tests[]='/test.php';
$tests[]='/test.php?foo=foo.bar/baz';
$tests[]='/foo/test.php';
$tests[]='/foo/test.php?foo=foo.bar/baz';
$tests[]='/foo/bar/test.php';
$tests[]='/foo/bar/test.php?foo=foo.bar/baz';
# diese beiden Verzeichnisse (/tmp/verz, (/tmp/verz.php) mit anlegen:
$t=`mkdir /tmp/verz`;
$t=`mkdir /tmp/verz.php`;
$tests[]='/tmp/verz';
$tests[]='/tmp/verz?foo=foo.bar/baz';
$tests[]='/tmp/verz.php';
$tests[]='/tmp/verz.php?foo=foo.bar/baz';
foreach ($tests as $s) {
print PHP_EOL;
print "-----------------------------------";
print PHP_EOL;
print "Teste: '$s'";
print PHP_EOL;
print "-----------------------------------";
print PHP_EOL;
# sonst fast Du auch ?foo=bar&bar=fuss mit dran:
$a=explode("?", $s, 2);
print_r($a);
# Dann am '/' trennen und das letzte Element holen:
$a=explode("/", $a[0]);
$s=$a[count($a)-1];
print ("Nach Abtrennen: '$s'");
# wenn es kein Verzeichnis ist;
if (! is_dir($_SERVER["DOCUMENT_ROOT"].$s)) {
# Dann Wenn ein punkt drin ist ... dann am '.' trennen und das letzte Element wegwerfen:
if ( -1 < strpos($s, '.') ) {
$a=array_reverse(explode(".", $s));
$dummy=array_shift($a);
$s=implode('.', array_reverse($a));
print PHP_EOL;
print ("Nach Explode, Shift und Implode: '$s'");
}
} else {
$s='index';
}
# Nachbetrachtung: 1. $s kann leer sein (Slash am Ende...)
if (! $s) { $s='index'; }
# Nachbetrachtung: 1. $s kann Verzeichnis sein (Slash am Ende nicht übertragen)
if (is_dir($_SERVER["DOCUMENT_ROOT"].$s)) { $s='index'; }
print PHP_EOL;
print "=================================";
print PHP_EOL;
print ("Ende: '$s'");
print PHP_EOL;
print "=================================";
print PHP_EOL;
}
hi Nirgendwer,
Moin,
in einer Variable
echo $UserSeite[2];
steht z.B. impressum.php ist nicht das was ich benötige. Ist es möglich dass ich alles was NACH dem . kommt entferne bzw. kann ich irgendwie anderes auf den Wert kommen?Ich mach es so
$UserSeite = explode("/", $_SERVER['REQUEST_URI']);
nimm doch basename
mfg
tami
Tach!
in einer Variable
echo $UserSeite[2];
steht z.B. impressum.php ist nicht das was ich benötige. Ist es möglich dass ich alles was NACH dem . kommt entferne bzw. kann ich irgendwie anderes auf den Wert kommen?
PHP hat da ein paar spezialisierte Funktionen. In deinem Fall kann pathinfo() einen Pfad in Einzelteile zerlegen. Mit var_dump(pathinfo(...)) kannst du dir ansehen, was du alles bekommen kannst. (Vorher ein <pre> erhöht die Übersichtlichkeit.)
dedlfix.