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.
Über den Autor
Software 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
PHP: Nur bestimmte Buchstaben, Zahlen und Zeichen in einem String zulassen
Tipp | 10 Kommentare
XAMPP: SSL/HTTPS für lokale Projekte einrichten
Tutorial | 8 Kommentare
HTACCESS: URL vereinfachen
Tutorial | 0 Kommentare
CSS-Stylesheets in HTML einbinden
Tutorial | 0 Kommentare
Das sichere Passwort
Info | 0 Kommentare
MySQL: Zeilenumbrüche in MySQL
Tipp | 0 Kommentare
PHP: Strings mit Ctype-Funktionen auf Zeichenklassen überprüfen
Artikel | 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.