Ver Mensaje Individual
  #10 (permalink)  
Antiguo 17/01/2011, 17:02
Avatar de portalmana
portalmana
 
Fecha de Ingreso: septiembre-2007
Ubicación: Montevideo-Uruguay
Mensajes: 633
Antigüedad: 16 años, 7 meses
Puntos: 80
Respuesta: Sirve en el servidor local pero no en el del hosting.

Mira este código... tiene una buena y otra mala...
Código PHP:
Ver original
  1. function ticket($pin)
  2. {  
  3.     $pin        = strtoupper($pin);
  4.     $pin        = str_split($pin);
  5.     $istore2    = 0;
  6.     $istore3    = 1313;
  7.     $bucle      = count($pin);
  8.  
  9.     for ($w = 0; $w < $bucle ; $w++) {
  10.         $istore5    = (int) ord($pin[$w]);
  11.         $istore2    = bcmul( (int) $istore2, (int) $istore3);
  12.         $istore21   = bcmul(bcmul(bcmul( bcmul((int) $istore5, (int) $istore5), (int) $istore5), 667), (int) $w);
  13.         $istore2    = bcadd( (int)$istore2, (int) $istore21);
  14.     }
  15.  
  16.     $istore2    = bcmod( ((int)$istore2 & 2147483647), 65536);
  17.    
  18.     for ($istore5 = 4; $istore5 >= 0; $istore5-- ) {
  19.         $astore4[$istore5]  = bcadd( bcmod((int)$istore2, 10), 48);
  20.         $istore2            = bcdiv((int)$istore2, 10);
  21.     }
  22.  
  23.     $key=0;
  24.     for ($i=1; $i<count($astore4); $i++){
  25.         $key.=chr($astore4[$i]);
  26.     }
  27.     return $key;
  28. }
  29. print 'Tichet: ' . ticket("216B22DD") . '<br />';
  30.  
  31. echo PHP_INT_SIZE . '<br/>';
  32. echo PHP_INT_MAX;

La buena: Da igual en servidores de 64 bits o 32 bits...
La mala: es que no da el valor que tu esperas, no se si erre algún calculo o que, pero capaz te sirva para encaminar el tema..

Saludos

P.D.: en la anterior me da diferente, es que los numero enseguida empiezan a separarse bastante...
__________________
"La imaginación es más importante que el conocimiento. El conocimiento es limitado, mientras que la imaginación no" -- A.Einstein
objetivophp.com,twitter.com/objetivophp