Posted By

nicolaspar on 07/12/06


Tagged


Versions (?)

Who likes this?

1 person have marked this snippet as a favorite

vali29


Php validar rango de codigos


 / Published in: PHP
 

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 = mysqlquery( $sql ); while( $rs = mysqlfetchassoc( $r ) ) { $paises[$rs["codigo"]] = array( "nombre" => $rs["nombre"], "cantidadUsuarios" => $rs["cantidadUsuarios"], "rangoDesde" => strtoupper($rs["rangoDesde"]), "stock" => strtoupper($rs["stock"]), "rangoHasta" => strtoupper($rs["rangoHasta"]) ); } mysqlfree_result( $r );

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

  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  

You need to login to post a comment.