Ver Mensaje Individual
  #2 (permalink)  
Antiguo 13/11/2005, 23:51
Avatar de yoseman
yoseman
 
Fecha de Ingreso: diciembre-2003
Ubicación: Alicante (Spain)
Mensajes: 471
Antigüedad: 20 años, 11 meses
Puntos: 5
Puedes probar lo siguiente:

En primer lugar ejecuta este script en tu servidor:
Código PHP:
<?php
print setlocale(LC_ALL0);
?>
Y comprobar que para LC_CTYPE lo tienes efectivamente en Spanish_spain.

Si no fuese así y dependiendo del sistema operativo en que se encuentre php debes de establecer la información de localización a español:
Código PHP:
<tt>
<?php
print "antes:".(setlocale(LC_ALL0))."<br />";
setlocale(LC_ALL"es_ES");
// para windows sería : setlocale(LC_ALL, "esp");

// vuelves a llamar a setlocale pasando como segundo argumento 0
// para ver si cambió la localización...
print "ahora:".setlocale(LC_ALL0)."<br />";
?>
</tt>
Y luego en la expresión regular referenciarías las cadenas con [[:alpha]] , por ejemplo
Código PHP:
function alphaTildes($cadena)
{
return (
preg_match("/^[[:alpha:]]+$/i",$cadena));
}
print 
alphaTildes("holá");  // DEBE DAR TRUE 1
print alphaTildes("holá1"); // DEBE DAR FALSE 0
print alphaTildes("hola");  // DEBE DAR TRUE 1
print alphaTildes("ho22222éílá");  // DEBE DAR FALSE 0 
A ver si hay suerte y te funciona, la verdad es que a mi me costó averiguarlo, porque me pidieron un buscador que diferenciase por tíldes :S

Salu2 ;) (te recomiendo que hagas algunas pruebas por ejemplo con acentos vacios o con mayúsculas acentuadas por si acaso ;) )
__________________
[+]
[+]