88 Stimmen

URL für Website aus Seitentitel generieren

Tutorial von Stefan Trost | 10.01.2012 um 15:54

Suchmaschinenfreundliche URLs sollten keine kryptischen Kombinationen aus Zahlen und Buchstaben enthalten sondern nach Möglichkeit relevante Keywords. Hier bietet sich zum Beispiel an, eine URL automatisch aus dem Titel der Seite zu generieren.

In diesem Tutorial möchte ich euch zeigen, wie man das bewerkstelligen kann. Natürlich kann man die fertige Funktion, die wir am Ende dieses Textes sehen, auch dazu verwenden URLs aus anderen Texten, wie zum Beispiel den ersten Zeichen eines Textes zu erstellen.

Die Ziele

Zunächst sollten wir uns über die Ziele unseres Vorhabens einigen. Als erstes möchten wir, dass mögliche Leerzeichen vorne und hinten an der URL abgeschnitten werden. Dazu verwenden wir:

$url = trim($titel);

Als nächstes sollten wir dafür sorgen, dass in der zukünftigen URL nur Kleinbuchstaben vorkommen dürfen. Mit dieser Funktion können wir unseren Input-String in Kleinbuchstaben verwandeln:

$url = mb_strtolower($titel,'UTF-8');

Da es sonst Probleme mit Sonderzeichen und Umlauten geben kann, verwenden wir statt der Funktion strtolower() die Multibyte Funktion mb_strtolower und geben UTF-8 als Kodierung an. Die meisten neuen Internetseiten sind heute in UTF-8 kodiert. Ist das bei Ihnen nicht so, können Sie hier eine andere Kodierung angeben.

Wir möchten in unserer URL nur die Kleinbuchstaben a bis z, die Zahlen 0 bis 9 sowie als Trennzeichen das Minuszeichen - haben. Alle anderen Zeichen werden gleich aus der URL geworfen. Vorher sollten wir aber die Zeichen, die wir nicht verlieren wollen, in Ihre Äquivalente umformen. Dazu gehören zum Beispiel die deutschen Umlaute und das ß. Leerzeichen in dem Ursprungsstring wandeln wir direkt in das Minuszeichen um:

$url = str_replace(array(' ','ä','ö','ü','ß'),
       array('-','ae','oe','ue','ss'),$titel);

Wir verwenden ein Array mit all den Buchstaben, die wir ersetzen möchten und ersetzen diese mit einem anderen Array der entsprechenden Äquivalente. Das "ä" ersetzen wir mit "ae", das "ß" mit "ss" und so weiter. Wenn Sie noch andere Ersetzungen vornehmen möchten, können Sie das Array entsprechend erweitern oder verkürzen.

Nachdem wir alle Buchstaben und Sonderzeichen gerettet haben, können wir die restlichen Zeichen, die kein Kleinbuchstabe von a bis z, keine Zahl und kein Minuszeichen sind löschen:

$url = preg_replace("([^a-z0-9/-])", "", $titel);

Der reguläre Ausdruck ([^a-z0-9/-]) sucht nach allen Zeichen, die wir nicht möchten und ersetzt diese durch "", wodurch die Zeichen einfach gelöscht werden.

Nun sind wir fast fertig. Es fehlt allerdings noch ein letzter Schritt:

$url = preg_replace("([/-]+)", "-", $titel);

Diese Zeile sorgt dafür, dass wir keine doppelten und dreifachen Minuszeichen hintereinander in unserer URL haben. Es wird mit dem regulären Ausdruck nach allen mehrfachen Vorkommen eines Minuszeichens gesucht und diese Vorkommen werden durch ein einfaches Minuszeichen ersetzt.

Die fertige PHP Funktion

Damit haben wir alle Code-Zeilen, die wir benötigen. Setzt man die einzelnen Ziele zusammen, ergibt sich folgende Funktion:

function CreateURL($text) {
   $url = mb_strtolower(trim($text, 'UTF-8'));
   $url = str_replace(array(' ','ä','ö','ü','ß'),
          array('-','ae','oe','ue','ss'), $url);
   $url = preg_replace("([^a-z0-9/-])", "", $url);
   return preg_replace("([/-]+)", "-", $url);
}

Der Aufruf erfolgt so:

$titel = " Frage: Ist Anton größer als Jenny? ";
$url = CreateURL($titel);   // "frage-ist-anton-groesser-als-jenny"

Diese Funktion können wir nun dazu verwenden schnell und einfach URLs aus einem beliebigen Text herzustellen.

AntwortenPositivNegativ

Über den Autor

AvatarSoftware von Stefan Trost finden Sie auf sttmedia.de. Benötigen Sie eine individuelle Software nach Ihren eigenen Wünschen? Schreiben Sie uns: sttmedia.de/kontakt
Profil anzeigen

 

Ähnliche Themen

HTACCESS: URL vereinfachen

Tutorial | 0 Kommentare

Das sichere Passwort

Info | 0 Kommentare

CSS-Stylesheets in HTML einbinden

Tutorial | 0 Kommentare

Wichtiger Hinweis

Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.

Jetzt mitmachen

Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.