array(' ', '00', '11011001100'), '1' => array('!', '01', '11001101100'), '2' => array('"', '02', '11001100110'), '3' => array('#', '03', '10010011000'), '4' => array('$', '04', '10010001100'), '5' => array('%', '05', '10001001100'), '6' => array('&', '06', '10011001000'), '7' => array('\'', '07', '10011000100'), '8' => array('(', '08', '10001100100'), '9' => array(')', '09', '11001001000'), '10' => array('*', '10', '11001000100'), '11' => array('+', '11', '11000100100'), '12' => array(',', '12', '10110011100'), '13' => array('-', '13', '10011011100'), '14' => array('.', '14', '10011001110'), '15' => array('/', '15', '10111001100'), '16' => array('0', '16', '10011101100'), '17' => array('1', '17', '10011100110'), '18' => array('2', '18', '11001110010'), '19' => array('3', '19', '11001011100'), '20' => array('4', '20', '11001001110'), '21' => array('5', '21', '11011100100'), '22' => array('6', '22', '11001110100'), '23' => array('7', '23', '11101101110'), '24' => array('8', '24', '11101001100'), '25' => array('9', '25', '11100101100'), '26' => array(':', '26', '11100100110'), '27' => array(';', '27', '11101100100'), '28' => array('<', '28', '11100110100'), '29' => array('=', '29', '11100110010'), '30' => array('>', '30', '11011011000'), '31' => array('?', '31', '11011000110'), '32' => array('@', '32', '11000110110'), '33' => array('A', '33', '10100011000'), '34' => array('B', '34', '10001011000'), '35' => array('C', '35', '10001000110'), '36' => array('D', '36', '10110001000'), '37' => array('E', '37', '10001101000'), '38' => array('F', '38', '10001100010'), '39' => array('G', '39', '11010001000'), '40' => array('H', '40', '11000101000'), '41' => array('I', '41', '11000100010'), '42' => array('J', '42', '10110111000'), '43' => array('K', '43', '10110001110'), '44' => array('L', '44', '10001101110'), '45' => array('M', '45', '10111011000'), '46' => array('N', '46', '10111000110'), '47' => array('O', '47', '10001110110'), '48' => array('P', '48', '11101110110'), '49' => array('Q', '49', '11010001110'), '50' => array('R', '50', '11000101110'), '51' => array('S', '51', '11011101000'), '52' => array('T', '52', '11011100010'), '53' => array('U', '53', '11011101110'), '54' => array('V', '54', '11101011000'), '55' => array('W', '55', '11101000110'), '56' => array('X', '56', '11100010110'), '57' => array('Y', '57', '11101101000'), '58' => array('Z', '58', '11101100010'), '59' => array('[', '59', '11100011010'), '60' => array('\\', '60', '11101111010'), '61' => array(']', '61', '11001000010'), '62' => array('^', '62', '11110001010'), '63' => array('_', '63', '10100110000'), '64' => array('`', '64', '10100001100'), '65' => array('a', '65', '10010110000'), '66' => array('b', '66', '10010000110'), '67' => array('c', '67', '10000101100'), '68' => array('d', '68', '10000100110'), '69' => array('e', '69', '10110010000'), '70' => array('f', '70', '10110000100'), '71' => array('g', '71', '10011010000'), '72' => array('h', '72', '10011000010'), '73' => array('i', '73', '10000110100'), '74' => array('j', '74', '10000110010'), '75' => array('k', '75', '11000010010'), '76' => array('l', '76', '11001010000'), '77' => array('m', '77', '11110111010'), '78' => array('n', '78', '11000010100'), '79' => array('o', '79', '10001111010'), '80' => array('p', '80', '10100111100'), '81' => array('q', '81', '10010111100'), '82' => array('r', '82', '10010011110'), '83' => array('s', '83', '10111100100'), '84' => array('t', '84', '10011110100'), '85' => array('u', '85', '10011110010'), '86' => array('v', '86', '11110100100'), '87' => array('w', '87', '11110010100'), '88' => array('x', '88', '11110010010'), '89' => array('y', '89', '11011011110'), '90' => array('z', '90', '11011110110'), '91' => array('{', '91', '11110110110'), '92' => array('|', '92', '10101111000'), '93' => array('}', '93', '10100011110'), '94' => array('~', '94', '10001011110'), '95' => array('del', '95', '10111101000'), '96' => array('Fnc 3', '96', '10111100010'), '97' => array('Fnc 2', '97', '11110101000'), '98' => array('Shift', '98', '11110100010'), '99' => array('Code C', '99', '10111011110'), '100' => array('Fnc 4', 'Code B', '10111101110'), '101' => array('Code A', 'Code A', '11101011110'), '102' => array('Fnc 1', 'Fnc 1', '11110101110'), '103' => array('Start A', 'Start A', '11010000100'), '104' => array('Start B', 'Start B', '11010010000'), '105' => array('Start C', 'Start C', '11010011100'), '106' => array('Stop', 'Stop', '1100011101011') ); $sign_to_id = array( ' ' => array('B' => '0'), '!' => array('B' => '1'), '"' => array('B' => '2'), '#' => array('B' => '3'), '$' => array('B' => '4'), '%' => array('B' => '5'), '&' => array('B' => '6'), '\'' => array('B' => '60'), '(' => array('B' => '8'), ')' => array('B' => '9'), '*' => array('B' => '10'), '+' => array('B' => '11'), ',' => array('B' => '12'), '-' => array('B' => '13'), '.' => array('B' => '14'), '/' => array('B' => '15'), '00' => array('C' => '0'), '01' => array('C' => '1'), '02' => array('C' => '2'), '03' => array('C' => '3'), '04' => array('C' => '4'), '05' => array('C' => '5'), '06' => array('C' => '6'), '07' => array('C' => '7'), '08' => array('C' => '8'), '09' => array('C' => '9'), ':' => array('B' => '26'), ';' => array('B' => '27'), '<' => array('B' => '28'), '=' => array('B' => '29'), '>' => array('B' => '30'), '?' => array('B' => '31'), '@' => array('B' => '32'), 'A' => array('B' => '33'), 'B' => array('B' => '34'), 'C' => array('B' => '35'), 'Code A' => array('B' => '101', 'C' => '101'), 'Code B' => array('C' => '100'), 'Code C' => array('B' => '99'), 'D' => array('B' => '36'), 'E' => array('B' => '37'), 'F' => array('B' => '38'), 'Fnc 1' => array('B' => '102', 'C' => '102'), 'Fnc 2' => array('B' => '97'), 'Fnc 3' => array('B' => '96'), 'Fnc 4' => array('B' => '100'), 'G' => array('B' => '39'), 'H' => array('B' => '40'), 'I' => array('B' => '41'), 'J' => array('B' => '42'), 'K' => array('B' => '43'), 'L' => array('B' => '44'), 'M' => array('B' => '45'), 'N' => array('B' => '46'), 'O' => array('B' => '47'), 'P' => array('B' => '48'), 'Q' => array('B' => '49'), 'R' => array('B' => '50'), 'S' => array('B' => '51'), 'Shift' => array('B' => '98'), 'Start A' => array('B' => '103', 'C' => '103'), 'Start B' => array('B' => '104', 'C' => '104'), 'Start C' => array('B' => '105', 'C' => '105'), '0' => array('B' => '16'), 'Stop' => array('B' => '106', 'C' => '106'), 'T' => array('B' => '52'), 'U' => array('B' => '53'), 'V' => array('B' => '54'), 'W' => array('B' => '55'), 'X' => array('B' => '56'), 'Y' => array('B' => '57'), 'Z' => array('B' => '58'), '[' => array('B' => '59'), ']' => array('B' => '61'), '^' => array('B' => '62'), '_' => array('B' => '63'), '`' => array('B' => '64'), 'a' => array('B' => '65'), 'b' => array('B' => '66'), 'c' => array('B' => '67'), 'd' => array('B' => '68'), 'e' => array('B' => '69'), 'f' => array('B' => '70'), 'g' => array('B' => '71'), 'h' => array('B' => '72'), 'i' => array('B' => '73'), 'j' => array('B' => '74'), 'k' => array('B' => '75'), 'l' => array('B' => '76'), 'm' => array('B' => '77'), 'n' => array('B' => '78'), 'o' => array('B' => '79'), 'p' => array('B' => '80'), 'q' => array('B' => '81'), 'r' => array('B' => '82'), 's' => array('B' => '83'), 't' => array('B' => '84'), 'u' => array('B' => '85'), 'v' => array('B' => '86'), 'w' => array('B' => '87'), 'x' => array('B' => '88'), 'y' => array('B' => '89'), 'z' => array('B' => '90'), '{' => array('B' => '91'), '|' => array('B' => '92'), '}' => array('B' => '93'), '~' => array('B' => '94'), '1' => array('B' => '17'), '2' => array('B' => '18'), '3' => array('B' => '19'), '4' => array('B' => '20'), '5' => array('B' => '21'), '6' => array('B' => '22'), '7' => array('B' => '23'), '8' => array('B' => '24'), '9' => array('B' => '25'), '10' => array('C' => '10'), '11' => array('C' => '11'), '12' => array('C' => '12'), '13' => array('C' => '13'), '14' => array('C' => '14'), '15' => array('C' => '15'), '16' => array('C' => '16'), '17' => array('C' => '17'), '18' => array('C' => '18'), '19' => array('C' => '19'), '20' => array('C' => '20'), '21' => array('C' => '21'), '22' => array('C' => '22'), '23' => array('C' => '23'), '24' => array('C' => '24'), '25' => array('C' => '25'), '26' => array('C' => '26'), '27' => array('C' => '27'), '28' => array('C' => '28'), '29' => array('C' => '29'), '30' => array('C' => '30'), '31' => array('C' => '31'), '32' => array('C' => '32'), '33' => array('C' => '33'), '34' => array('C' => '34'), '35' => array('C' => '35'), '36' => array('C' => '36'), '37' => array('C' => '37'), '38' => array('C' => '38'), '39' => array('C' => '39'), '40' => array('C' => '40'), '41' => array('C' => '41'), '42' => array('C' => '42'), '43' => array('C' => '43'), '44' => array('C' => '44'), '45' => array('C' => '45'), '46' => array('C' => '46'), '47' => array('C' => '47'), '48' => array('C' => '48'), '49' => array('C' => '49'), '50' => array('C' => '50'), '51' => array('C' => '51'), '52' => array('C' => '52'), '53' => array('C' => '53'), '54' => array('C' => '54'), '55' => array('C' => '55'), '56' => array('C' => '56'), '57' => array('C' => '57'), '58' => array('C' => '58'), '59' => array('C' => '59'), '60' => array('C' => '60'), '61' => array('C' => '61'), '62' => array('C' => '62'), '63' => array('C' => '63'), '64' => array('C' => '64'), '65' => array('C' => '65'), '66' => array('C' => '66'), '67' => array('C' => '67'), '68' => array('C' => '68'), '69' => array('C' => '69'), '70' => array('C' => '70'), '71' => array('C' => '71'), '72' => array('C' => '72'), '73' => array('C' => '73'), '74' => array('C' => '74'), '75' => array('C' => '75'), '76' => array('C' => '76'), '77' => array('C' => '77'), '78' => array('C' => '78'), '79' => array('C' => '79'), '80' => array('C' => '80'), '81' => array('C' => '81'), '82' => array('C' => '82'), '83' => array('C' => '83'), '84' => array('C' => '84'), '85' => array('C' => '85'), '86' => array('C' => '86'), '87' => array('C' => '87'), '88' => array('C' => '88'), '89' => array('C' => '89'), '90' => array('C' => '90'), '91' => array('C' => '91'), '92' => array('C' => '92'), '93' => array('C' => '93'), '94' => array('C' => '94'), '95' => array('C' => '95'), '96' => array('C' => '96'), '97' => array('C' => '97'), '98' => array('C' => '98'), '99' => array('C' => '99') ); function print_code($kod, $img) { global $b, $w, $now; $kod = str_split($kod); foreach($kod as $val) { if($val==1) { imageline($img, $now, 0, $now, 40, $b); $now++; } elseif($val==0) { $now++; } } } function gen_binary($kod) { global $id_to_sign, $sign_to_id; $csm = $sign_to_id['Start B']['B']; $ret = $id_to_sign[$sign_to_id['Start B']['B']][2]; $now = 1; $typ = 'B'; $kod = str_split($kod); foreach($kod as $key => $val) { if(is_numeric($val) AND is_numeric($kod[$key+1]) AND !isset($num)) { if($now==1) { $csm = $sign_to_id['Start C']['B']; $ret = $id_to_sign[$sign_to_id['Start C']['B']][2]; $typ = 'C'; } $num = $val; continue; } elseif(is_numeric($val) AND isset($num)) { if($typ!='C') { $ret .= $id_to_sign[$sign_to_id['Code C']['B']][2]; $csm += $sign_to_id['Code C']['B']*$now; $typ = 'C'; $now++; } $ret .= $id_to_sign[$sign_to_id[$num.$val]['C']][2]; $csm += $sign_to_id[$num.$val]['C']*$now; unset($num); } else { if($typ!='B') { $ret .= $id_to_sign[$sign_to_id['Code B']['C']][2]; $csm += $sign_to_id['Code B']['C']; $typ = 'B'; $now++; } $ret .= $id_to_sign[$sign_to_id[$val]['B']][2]; $csm += $sign_to_id[$val]['B']*$now; } $now++; } return $ret . $id_to_sign[$csm%103][2] . $id_to_sign[$sign_to_id['Stop'][$typ]][2]; } $kod = gen_binary($_GET['kod']); $i = imagecreate(strlen($kod), 40); $w = imagecolorallocate($i, 255, 255, 255); $b = imagecolorallocate($i, 0, 0, 0); print_code($kod, $i); header('Content-type: image/gif'); imagegif($i); ?>