Funciones para limpiar las hay. Yo uso esta:
$nombre_limpio = preg_replace("/[^a-zA-Z0-9s]/", "_", $nombre);
En este caso no necesito limpiar para guardar en db, sino para mostrar en pantalla (el nombre de una imagen que se llama diseno.jpg)
Con lo que me pasaste me funciono perfectamente!
Mil gracias!