Podrías hacer algo más casero.. los caracteres especiales "raros" los reemplazas por un GUIÓN BAJO o algun caracter válido para ULR, por ejemplo
Código PHP:
//FUNCION PARA ELIMINAR PUNTOS, COMAS, GUIONES, Y LO QUE SE TE OCURRA
function eliminar_caracteres($texto1) {
//Rememplazamos caracteres especiales latinos minusculas
$find = array(',', '.', '-', '(', ')',' ');
$repl = array('_', '_', '_', '_', '_', '_', '_');
$texto1 = str_replace ($find, $repl, $texto1);
return $texto1;
}