[PHP] Umlaute und Zeichen filtern

unregiert

abgemeldet
22 April 2006
451
26
Salve

Ich stehe vor folgendem Problem:
Ich möchte meine Weblogs suchmaschinenfreundlich machen, und dazu leite ich alle [a-z].html Dateien zu einer PHP Engine, die schliesslich den Weblog anzeigt. Nun, das [a-z] ist in meinem Falle ein Weblog Titel.
Was aber, wenn es Umlaute und nervende Zeichen im Titel hat? Naja, dann ist es nicht mehr Suchmaschinenfreundlich und sieht hässlich aus ;)

Jetzt die Frage: Gibt es fertige Funktionen, die alle Leerschläge filtert, Umlaute zu ae/oe etc macht und Sonderzeichen ebenfalls filtert?
 
evtl. müsstest du dir noch eine zweite frage stellen, was passiert, wenn zwei beiträge den gleichen titel haben ;)

zum eigentlichen problem, nutze doch str_replace mit zwei arrays...

$raus = array('ö', 'ä',...)
$rein = array('oe','ae',...)

$titel = str_replace($raus, $rein, $titel)
 
evtl. müsstest du dir noch eine zweite frage stellen, was passiert, wenn zwei beiträge den gleichen titel haben ;)

zum eigentlichen problem, nutze doch str_replace mit zwei arrays...

$raus = array('ö', 'ä',...)
$rein = array('oe','ae',...)

$titel = str_replace($raus, $rein, $titel)
Ist zu ... naja, mir fehlen die Worte. Was, wenn es Abstände hat? Sind euere zwei Sachen wirklich soooo sicher?
 
naja, also es geht dir doch erstmal nur darum, eine irgendwas.html zu erstellen wobei irgendwas der titel zum entsprechenden Beitrag sein soll.

das Problem, irgendwas kann bzw. sollte nur aus Zeichen a-z A-Z 0-9 - und _ bestehen. dazu holst du also den titel aus der DB und ersetzt erstmal alles was man sinnvoll ersetzen kann, also aus ä wird ae, aus Ä wird Ae, aus ß wird ss und was weiß ich was noch.
und anschließend schmeißt du mit preg_replace alles raus was nicht reingehört (vielleicht gibt es dafür sogar noch ne bessere funktion)


PHP:
$raus = array("ä","Ä","ü","Ü","ö","Ö","ß"," ");
$rein = array("ae","Ae","ue","Ue","oe","Oe","ss","_");
$text = str_replace($raus,$rein,$text);
$text = preg_replace('~[^a-zA-Z0-9_-]*~i','',$text);
so würde es dann aussehen
https://www.skillcorp.de/testarea/test.php

anschließend solltest du an den text noch eine kenn-nummer hängen, mit dem du den beitrag identifizieren kannst, denn das ganze ist nicht reversibel, also nur aus dem text wirst du den beitrag wohl nicht wiederfinden können. ;)

was genau findest du daran unsicher?