PHP function str_to_link($str) - Parse Text zu URL-Link

Freebies: PHP Functions

Freebies: PHP Functions

Eine smarte und einfache Funktion zum parsen von Text zu URL-Link.

Wer arbeitet heute noch mit IDs im URL Link? Für die OnPage SEO sind Klarnamen als Links ideal. Mit meiner einfachen Funktion, welche ich für meine CMS eingesetzt habe, können aus Text-Titeln ganz einfach URL-Links als Rückgabe erzeugt werden.

So sieht die PHP Funktion str_to_link aus

<?php function str_to_link($str){	//parse string to url-link	$str = trim($str);	$str = strtolower($str);	$str = str_replace(array(\'ä\', \'ü\', \'ö\', \'ß\'), array(\'ae\', \'ue\', \'oe\', \'ss\'), $str);	$str = preg_replace(\'/([^a-z0-9]+)/\', \'-\', $str);	$str = str_replace(\'--\', \'-\', $str);	return $str;}//zum testen eine Ausgabe$content = \'Icons: Desktop----, Tablet, Smartphone - Download für dich\';echo $content.\'<br />\';echo str_to_link($content);?>

Und so arbeitet die Funktion

Mittels trim() werden Leerzeichen am Anfang und Ende von $str entfernt. strtolower() wandelt alles in Kleinbuchstaben um.
Die erste str_replace() behandelt unsere Umlaute und ß.

Danach folgt die preg_replace() Funktion, welche mittels Regex (regular expression / reguläre Ausdrücke) die Variable durchläuft. Hier kommt eine "not condition" zum Einsatz, welche alle Zeichen außer A bis Z (a-z), sowie 0 bis 9 (0-9) als einfachen Bindestrich umwandelt.

Durch verschiedene Sonderzeichen könnten mehrere Bindestriche hintereinander auftauchen - unschön und untypisch für eine URL. Diese behandeln wir mit einer einfachen str_replace() Funktion.

Am Ende folgt noch ein Testlauf mit einem Text-Titel (dieser wurde zum testen etwas unschön erweitert).

Du solltest dann das als echo-Ausgabe im Browser erhalten:
echo str_to_link(\'Free Icons: Desktop----, Tablet, Smartphone - Download für dich\');

wird zu
free-icons-desktop-tablet-smartphone-download-fuer-dich

Fazit

Klar hätte man die Funktion noch smarter gestalten können und eine umfangreiche preg_replace() nutzen können, auch mit callback. So bietet diese Funktion jedoch einen einfach Einstieg auch für Anfänger und ist gut erweiterbar.

Teile mir deine Meinung mit! Gern auch Ergänzungen, Erweiterungen, vorschläge oder dein Einsatzgebiet.