Christian Seiler: Teile aus einer URL auslesen?

Beitrag lesen

Hallo Lordi,

In $dateiname steht jetzt test.php. Aber hier das eigentliche Problem: Ich möchte nur das 'test'... das .php soll weg.

Wie kann ich das machen?

Einfache Antwort: gar nicht.

Komplizierte Antwort:

Eine Erweiterung kann ja aus mehreren Teilen bestehen, abc.tar.gz ist ein Archiv mit der Erweiterung "tar.gz"; bei hallo.welt.c ist die Erweiterung lediglich "c" und der Dateiname "hallo.welt". Programmiertechnisch kannst Du ohne eine Liste der bekannten Endungen das nicht unterscheiden.

Wenn Du aber mit Sicherheit weißt, dass der _letzte_ Punkt die Endung trennt, dann könntest Du diese Funktion verwenden:

function dateiname ($name) {
  $res = preg_match ('!^(.*)..*?$!', $name, $matches);
  if ($res) {
    return $matches[1];
  } else {
    return $name;
  }
}

Wenn Du mit Sicherheit weißt, dass der _erste_ Punkt die Endung trennt, dann kannst Du diese Funktion verwenden:

function dateiname ($name) {
  $res = preg_match ('!^(.*?)..*$!', $name, $matches);
  if ($res) {
    return $matches[1];
  } else {
    return $name;
  }
}

Wenn Du mit Sicherheit weißt, dass die Datei auf .php endet, dann kannst Du auch Saschas Methode verwenden.

Viele Grüße,
Christian

--
| http://www.selflinux.org/                                                  |
| http://aktuell.de.selfhtml.org/tippstricks/beitrag.htm                      |
| sh:) fo:) ch:] rl:( br:> n4:& ie:% mo:) va:) de:] zu:) fl:( js:| ss:) ls:[ |
| http://emmanuel.dammerer.at/selfcode.html                                  |