Foros del Web » Programando para Internet » PHP »

Hay alguna función para separar cada caracter de un string?

Estas en el tema de Hay alguna función para separar cada caracter de un string? en el foro de PHP en Foros del Web. Bueno, necesito saber eso, porque quiero hacer una comprobacion de contraseña, y quiero que pueda tener letras (a-Z), numeros (0-9), y guiones bajos, medios, y ...
  #1 (permalink)  
Antiguo 09/08/2008, 03:25
 
Fecha de Ingreso: mayo-2008
Ubicación: En la guarida del mal, tratando de conquistar el mundo
Mensajes: 174
Antigüedad: 15 años, 10 meses
Puntos: 2
De acuerdo Hay alguna función para separar cada caracter de un string?

Bueno, necesito saber eso, porque quiero hacer una comprobacion de contraseña, y quiero que pueda tener letras (a-Z), numeros (0-9), y guiones bajos, medios, y puntos. Lo que se me ocurrió fue separar la cadena y con un FOR, hacer la comprobacion letra por letra :P.

Se meocurre que esto va a consumir muchos recursos T_T. Hay alguna manera mas "economica" xD?

Bueno, si no hay otra manera, por favor decidme si por lo menos hay alguna funcion que me permita dividirlo en un array ^^.
  #2 (permalink)  
Antiguo 09/08/2008, 04:29
 
Fecha de Ingreso: julio-2008
Mensajes: 22
Antigüedad: 15 años, 9 meses
Puntos: 2
Respuesta: Hay alguna función para separar cada caracter de un string?

Si no recuerdo mal, puedes recorrer una cadena caracter por caracter directamente mediante un for:
Código:
for($i = 0; $i < strlen($cadena); i++)
    $caracter = $cadena[$i];
Por otro lado quizas te fuera mas util utilizar expresiones regulares:
Código:
eregi("^[a-z0-9_-\.]$", $cadena);
Salu2

--- EDITADO ---

Mejor (no recuerdo si habria que escapar el guion):
Código:
eregi("^[a-z0-9_-\.]+$", $cadena);

Última edición por aoglab; 09/08/2008 a las 05:25
  #3 (permalink)  
Antiguo 09/08/2008, 04:50
 
Fecha de Ingreso: octubre-2007
Mensajes: 394
Antigüedad: 16 años, 5 meses
Puntos: 2
Respuesta: Hay alguna función para separar cada caracter de un string?

Cita:
Iniciado por aoglab Ver Mensaje
Si no recuerdo mal, puedes recorrer una cadena caracter por caracter directamente mediante un for:
Código:
for($i = 0; $i < strlen($cadena); i++)
    $caracter = $cadena[$i];
Por otro lado quizas te fuera mas util utilizar expresiones regulares:
Código:
eregi("^[a-z0-9_-\.]$", $cadena);
Salu2

Mejoro el script del compañero:
Código PHP:
$longitudstrlen($cadena);
for(
$i 0$i $longitud; ++$i)
    
$caracter $cadena[$i]; 
algo mas eficiente

Un saludo
  #4 (permalink)  
Antiguo 09/08/2008, 14:47
 
Fecha de Ingreso: mayo-2008
Ubicación: En la guarida del mal, tratando de conquistar el mundo
Mensajes: 174
Antigüedad: 15 años, 10 meses
Puntos: 2
De acuerdo Respuesta: Hay alguna función para separar cada caracter de un string?

Bueno, no me ah funcionado lo de sacar los caracteres de un string usandolo como array, pero eh encontrado una solucion en http://www.desarrolloweb.com/articulos/2373.php.

Se basa en:

Código PHP:
for($i=0;$i<$text_long;$i++)
            {
                if(
strpos($charssubstr($text,$i,1))===false)
                    return 
false;
            } 
Me pareció bastante simple ^^
  #5 (permalink)  
Antiguo 09/08/2008, 15:14
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Hay alguna función para separar cada caracter de un string?

Usa expresiones regulares:

Código PHP:
$var// Es la cadena que quieres comprobar
 
if (!ereg("[^a-zA-Z0-9_.-]",$var)) { 
    echo 
'Es válido';
} else {
    echo 
'No es válido';

Pruébalo aquí:

Ejemplo: http://lab.phperu.net/ereg/
Código: http://lab.phperu.net/ereg/?source

Saludos,
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:56.