per i caratteri accentati minuscoli da tastiera metti una backslash \ā\č\étc.
ho fatto questa di prova e dovrebbe funzionare (non ho messo il trattino perché non mi pare che ci vada nei cognomi).
Codice PHP:
$stringa = " d. Mariōnč di Vāl d'Abruzzésė ";
$regExp = "^([a-z\\'\\ō\\ā\\ė\\č\\é\\ų]+(\\.[[:space:]])?[[:space:]]*)+$";
if ( eregi($regExp,ltrim($stringa)) ) echo "č un cognome
";
else echo "non č un cognome
";
Mentre per altri tipi di caratteri tipo ã Ã etc mi si č posto il problema e credo che l'unico modo sia quello di usare preg_match() e usare i valori esadecimali del carattere
Codice PHP:
$stringa = " d. Mariōnč di Vāl d'ãbruzzésė ";
// ho messo la "ã"
$val = dechex(ord("ã"));
$regExp = "/^(?:[a-z\\'\\ō\\ā\\ė\\č\\é\\ų\\x$val]+(?:\\.\\s)?\\s*)+$/i";
if (preg_match($regExp,ltrim($stringa))) echo "e' un cognome
";
else echo "non č un cognome
";
Ogni carattere particolare che vuoi controllare va aggiunto (sia maiscolo che minuscolo).
altri modi non ne ho visti (se non mb_ereg() ma sinceramente non saprei).