Php validar rango de codigos


/ Published in: PHP
Save to your folder(s)

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";


Copy this code and paste it in your HTML
  1. function validarCodigoReferencia( $str, $pais ){
  2. global $conn, $paises;
  3. $str = strtoupper( $str );
  4. #Primero, que tenga 6 caracteres, sino afuera de con el pichicho.
  5. if( strlen( $str ) != 6 ){
  6. return false;
  7. }else{
  8. #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
  9. $primeraParte = soloLetras( substr( $str, 0, 3 ) );
  10. $segundaParte = soloNum( substr( $str, 3, 6 ) );
  11. #echo $primeraParte . "-" . $segundaParte;
  12. #Con estas partes generamos un nuevo str
  13. $strNew = $primeraParte . $segundaParte;
  14. #Y si no quedo de 6 no es valido.
  15. if( strlen( $strNew ) != 6 ){
  16. return false;
  17. }else{
  18. #Si quedo de 6 es que es de 3 letras + 3 numeros. Veamos si está en el rango del pais
  19. $rangoDesde = ord( $paises[$pais]["rangoDesde"] );
  20. $rangoHasta = ord( $paises[$pais]["rangoHasta"] );
  21. $esteRango = ord( $strNew{0} );
  22. #echo $rangoDesde . '-' . $rangoHasta .'-'. $esteRango;
  23. if( $esteRango > $rangoHasta || $esteRango < $rangoDesde ){
  24. return false;
  25. }else{
  26. return true;
  27. }
  28. }
  29. }
  30. }

Report this snippet


Comments

RSS Icon Subscribe to comments

You need to login to post a comment.