TCPDFBarcode::get128ABsequence PHP Method

get128ABsequence() protected method

Split text code in A/B sequence for 128 code.
protected get128ABsequence ( $code ) : array
$code (string) code to split.
return array sequence
    protected function get128ABsequence($code)
    {
        $len = strlen($code);
        $sequence = array();
        // get A sequences (if any)
        $numseq = array();
        preg_match_all('/([\\0-\\31])/', $code, $numseq, PREG_OFFSET_CAPTURE);
        if (isset($numseq[1]) and !empty($numseq[1])) {
            $end_offset = 0;
            foreach ($numseq[1] as $val) {
                $offset = $val[1];
                if ($offset > $end_offset) {
                    // B sequence
                    $sequence[] = array('B', substr($code, $end_offset, $offset - $end_offset), $offset - $end_offset);
                }
                // A sequence
                $slen = strlen($val[0]);
                $sequence[] = array('A', substr($code, $offset, $slen), $slen);
                $end_offset = $offset + $slen;
            }
            if ($end_offset < $len) {
                $sequence[] = array('B', substr($code, $end_offset), $len - $end_offset);
            }
        } else {
            // only B sequence
            $sequence[] = array('B', $code, $len);
        }
        return $sequence;
    }