Return to Snippet

Revision: 412
at July 12, 2006 13:19 by nicolaspar


Initial Code
function validarCodigoReferencia( $str, $pais ){
	global $conn, $paises;
	$str = strtoupper( $str );
	#Primero, que tenga 6 caracteres, sino afuera de con el pichicho.
	if( strlen( $str ) != 6 ){
		return false;
	}else{
		#Dividimos en dos, limpiamos la primer parte de todo lo que no sea letras y la segunda de todo lo que no sea número
		$primeraParte = soloLetras( substr( $str, 0, 3 ) );
		$segundaParte = soloNum( substr( $str, 3, 6 ) );
		#echo $primeraParte . "-" . $segundaParte;
		#Con estas partes generamos un nuevo str
		$strNew = $primeraParte . $segundaParte;
		#Y si no quedo de 6 no es valido.
		if( strlen( $strNew ) != 6 ){
			return false;
		}else{
			#Si quedo de 6 es que es de 3 letras + 3 numeros. Veamos si está en el rango del pais
			$rangoDesde = ord( $paises[$pais]["rangoDesde"] );
			$rangoHasta = ord( $paises[$pais]["rangoHasta"] );
			$esteRango = ord( $strNew{0} );
			#echo $rangoDesde . '-' . $rangoHasta .'-'. $esteRango;
			if( $esteRango > $rangoHasta || $esteRango < $rangoDesde ){
				return false;
			}else{
				return true;
			}
		}
	}
}

Initial URL

                                

Initial Description
Valida si un codigo (en este caso formato XXXYYY donde y es num y x es alfa) pertenece a un país.
EJ:
$paises = array();
$sql = "Select * from paises where estado = 1";
$r = mysql_query( $sql );
while( $rs = mysql_fetch_assoc( $r ) ) {
	$paises[$rs["codigo"]] = array(	
	"nombre" => $rs["nombre"],
	"cantidadUsuarios" => $rs["cantidadUsuarios"],
	"rangoDesde" => strtoupper($rs["rangoDesde"]),
	"stock" => strtoupper($rs["stock"]),
	"rangoHasta" => strtoupper($rs["rangoHasta"])
	);
}
mysql_free_result( $r );

if( validarCodigoReferencia( "ABD155", 1 ) ) echo "si"; else echo "no";

Initial Title
Php validar rango de codigos

Initial Tags

                                

Initial Language
PHP