Tach!
$titel = strtolower ($titel); $titel = stripslashes($titel); $titel = htmlspecialchars($titel); $titel = str\_replace($i\_vars,$o\_vars,$titel);
Was bitte sucht denn htmlspecialchars() in dieser illustren Runde? stripslashes() braucht es auch nicht. Wenn du Nicht-Buchstaben-Zeichen ersetzen/löschen möchtest, bau die mit in deine Liste der zu ersetzenden Zeichen ein.
$i_vars = array(" ","Ä","Ö","Ü","ä","ö","ü","ß","?","/","-","é","è","é","&","&","´","´");
Außerdem deutet es auf ein Problem hin, wenn du hier mit HTML-Entitys arbeitest. Warum stehen denn solchen in deinen zu verarbeitenden Daten? Solche Umschreibungen gehören höchstens in die Ausgabe (normalerweise und heutzutage aber direkt UTF-8-kodiert). Wenn du diese Umschreibungen vom Browser bekommst, wenn der Nutzer fremdländische Zeichen eingibt, solltest du dich mal mit einer Umstellung auf UTF-8 befassen.
dedlfix.