Especificas el rango de letras que SÍ permites, por ejemplo de la A a la Z y del 0 al 9 (pero espacios, caracteres raros, tildes y ñ, no estarán permitidos)
Código PHP:
$nombre = "Ñaño";
if (ereg('[^A-Za-z0-9]', $nombre)
{
//Ha puesto caracteres prohibidos
} else {
//Lo que ha ingresado es aceptado
}
En cuanto al str_replace, te permite cambiar directamente esos caracteres por otros. Por ejemplo, puedes cambiar una ñ por una n.
Código PHP:
$nombre = str_replace("ñ", "n", $nombre);
Espero habertelo aclarado