@ ben at onshop dot co dot uk
Your example is the slowest possible way to do it.
The whole idea behind using ctype_alnum is that it is much faster than a regexp.
If you have to use regexp, at least use PCRE, not POSIX.
ctype_alnum
(PHP 4 >= 4.0.4, PHP 5)
ctype_alnum — Chequear posibles caracteres alfanuméricos
Descripción
bool ctype_alnum
( string $texto
)
Chequea si todos los caracteres en la cadena entregada, texto , son alfanuméricos. En la localidad C estándar las letras se limitan a [A-Za-z].
Lista de parámetros
- texto
-
La cadena de prueba.
Valores retornados
Devuelve TRUE si cada caracter de texto es o bien uno letra o un dígito, FALSE de lo contrario.
Ejemplos
Example #1 Un ejemplo de ctype_alnum() (usando la localización predeterminada)
<?php
$cadenas = array('AbCd1zyZ9', 'foo!#$bar');
foreach ($cadenas as $caso_prueba) {
if (ctype_alnum($caso_prueba)) {
echo "La cadena $caso_prueba consiste completamente de letras o dígitos.\n";
} else {
echo "La cadena $caso_prueba no consiste completamente de letras o dígitos.\n";
}
}
?>
El resultado del ejemplo seria:
La cadena AbCd1zyZ9 consiste completamente de letras o dígitos. La cadena foo!#$bar no consiste completamente de letras o dígitos.
ctype_alnum
kostromin at gmail com
26-Feb-2008 11:24
26-Feb-2008 11:24
ben at onshop dot co dot uk
13-Jan-2008 04:03
13-Jan-2008 04:03
Oops, above example should read:
if(eregi('[^a-zA-Z0-9_]', $str)){
$msg = 'Please enter an alphanumeric value';
)
ben at onshop dot co dot uk
13-Jan-2008 02:26
13-Jan-2008 02:26
An alternative if you need to accept underscores as well:
$str = 'user_name';
if(!eregi('[^a-zA-Z0-9_]', $str)){
$msg = 'Please enter an alphanumeric value';
)
