예제 #1
0
 /**
  * @param $str
  * @param $pos
  *
  * @return bool
  */
 public static function isAlNumAt($str, $pos)
 {
     return $pos >= strlen($str) ? false : Input::lookAnTable(ord($str[$pos])) >= 0;
 }
예제 #2
0
 /**
  * @param $version
  *
  * @return int
  */
 public function encodeModeAn($version)
 {
     try {
         $words = (int) ($this->size / 2);
         $bs = new BitStream();
         $bs->appendNum(4, 0x2);
         $bs->appendNum(Specifications::lengthIndicator(Enum::QR_MODE_AN, $version), $this->size);
         for ($i = 0; $i < $words; $i++) {
             $val = (int) Input::lookAnTable(ord($this->data[$i * 2])) * 45;
             $val += (int) Input::lookAnTable(ord($this->data[$i * 2 + 1]));
             $bs->appendNum(11, $val);
         }
         if ($this->size & 1) {
             $val = Input::lookAnTable(ord($this->data[$words * 2]));
             $bs->appendNum(6, $val);
         }
         $this->bStream = $bs;
     } catch (\Exception $e) {
         return -1;
     }
     return 0;
 }