Domainendung rausfiltern?

Dustin84

Erfahrenes Mitglied
Hallo,

ich wollte einmal nachfragen, wie man z.B aus der URL

Code:
http://www.tutorials.de/newthread.php?do=newthread&f=8

oder

Code:
http://www.tutorials.com/usercp.php

das /de oder /com rausfiltern kann. Ich brauche das für eine Sprachdatei.

PHP:
// Ich hätte es so gemacht:
if(preg_match("//de/",$_SERVER['REQUEST_URI'])){
		$lang = 'de';
}

Scheint mir aber noch bessere Wege zu geben.

Gruß
D.
 
Ich würde dir die Funktion parse_url() empfehlen, allerdings wenn ich das richtig sehe versucht du so die Sprache einer Seite zu ermitteln? Was machst du wenn du auf .net, .com, .org, .biz, .info triffst?

Die Sprache in der ein HTML-Dokument verfasst ist steht in den Meta Angaben des Dokumentes.
 
$_SERVER[] bezieht sich auf den eigenen Server, von dem das Script läuft.. Vielleicht funktioniert:
Code:
#(\.)([a-zA-Z]{2,3})(\/)#
bedingt aber, dass ein Slash hinter der Domain angegeben ist - weil zB eine url zur Datei angehängt ist.

Aber - Napofis hat schon das Richtige genannt.

mfg chmee
 
Zuletzt bearbeitet:
Es gibt versch. Lösungen. Wenn du kein Regexp verwenden willst, ist das auch eine Lösung
PHP:
$endung = array_pop(explode('.', parse_url($url, PHP_URL_HOST)));

Den Host aus der url parsen, mit '.' in ein Array splitten und den letzten Array-Vert auslesen.

Nachtrag:
Geht natürlich auch mit String-Funktionen
PHP:
$endung = ltrim(strrchr(parse_url($url, PHP_URL_HOST), '.'), '.');
 
Zurück