Cita:
Iniciado por HalconVigia como sabra el script cuando tiene que poner 1,2 o 3 digitos??
entiendo que con el substr saco los caracteres pero... como sabra el script cuando sacar cuantos
Si tienes los códigos de miembro ya recuperados a través de una consulta, yo creo que las expresiones regulares pueden ser la solución para tu problema. Estoy estudiándolas ahora para aprender cómo van y me sorprendo de lo potentes y fáciles que son de usar.
A modo de ejemplo, usando el formato de miembro que apuntabas (ciudad+grupo+user+codigo), he probado con un script para ver si era capaz de separar todos los componentes del miembro... y la verdad es que es inmediato, y no depende de la longitud de cada uno de los apartados, lo descompone igualmente:
Código PHP:
<?php
function descomponer( $miembro )
{
$patron = "/^([a-z]+)G(\d+)([a-z]+)(\d+)$/i";
if ( preg_match( $patron, $miembro ) )
{
$desglose["user"] = preg_replace( $patron, "$3", $miembro);
$desglose["grupo"] = preg_replace( $patron, "$2", $miembro);
$desglose["codigo"] = preg_replace( $patron, "$4", $miembro);
$desglose["ciudad"] = preg_replace( $patron, "$1", $miembro);
return $desglose;
}
return false;
}
print_r( descomponer("YUCG1MATT23") );
print_r( descomponer("YUUCCCG1234MATTTTTT234567") );
?>
Y el resultado de la ejecución del script devuelve:
Código:
Array
(
[user] => MATT
[grupo] => 1
[codigo] => 23
[ciudad] => YUC
)
Array
(
[user] => MATTTTTT
[grupo] => 1234
[codigo] => 234567
[ciudad] => YUUCCC
)
Incluso identifica si algún código de miembo no tiene el formato correcto devolviendo "false". Si crees que es una alternativa, te animo a que repases alguno de los muchos tutoriales que hay por ahí sobre expresiones regulares.
Un saludo!