public function init(array $spec) { $dl = wechat_qrcode_QRspec::rsDataCodes1($spec); $el = wechat_qrcode_QRspec::rsEccCodes1($spec); $rs = wechat_qrcode_QRrs::init_rs(8, 0x11d, 0, 1, $el, 255 - $dl - $el); $blockNo = 0; $dataPos = 0; $eccPos = 0; for ($i = 0; $i < wechat_qrcode_QRspec::rsBlockNum1($spec); $i++) { $ecc = array_slice($this->ecccode, $eccPos); $this->rsblocks[$blockNo] = new wechat_qrcode_QRrsblock($dl, array_slice($this->datacode, $dataPos), $el, $ecc, $rs); $this->ecccode = array_merge(array_slice($this->ecccode, 0, $eccPos), $ecc); $dataPos += $dl; $eccPos += $el; $blockNo++; } if (wechat_qrcode_QRspec::rsBlockNum2($spec) == 0) { return 0; } $dl = wechat_qrcode_QRspec::rsDataCodes2($spec); $el = wechat_qrcode_QRspec::rsEccCodes2($spec); $rs = wechat_qrcode_QRrs::init_rs(8, 0x11d, 0, 1, $el, 255 - $dl - $el); if ($rs == NULL) { return -1; } for ($i = 0; $i < wechat_qrcode_QRspec::rsBlockNum2($spec); $i++) { $ecc = array_slice($this->ecccode, $eccPos); $this->rsblocks[$blockNo] = new wechat_qrcode_QRrsblock($dl, array_slice($this->datacode, $dataPos), $el, $ecc, $rs); $this->ecccode = array_merge(array_slice($this->ecccode, 0, $eccPos), $ecc); $dataPos += $dl; $eccPos += $el; $blockNo++; } return 0; }