$tbl[$ord] = (isset($tbl[$ord]) ? $tbl[$ord] : 0) | $class; } } } function addChRangeClass(&$tbl, $chFrom, $chTo, $class, $add = false) { for ($i = $chFrom; $i <= $chTo; $i++) { if (!$add || !isset($tbl[$i])) { $tbl[$i] = $class; } else { $tbl[$i] = (isset($tbl[$i]) ? $tbl[$i] : 0) | $class; } } } addChRangeClass($tbl, 0, 0x20, Jevix::NOPRINT); addChRangeClass($tbl, uniord('a'), uniord('z'), Jevix::ALPHA | Jevix::LAT | Jevix::PRINATABLE | Jevix::NAME); addChRangeClass($tbl, uniord('A'), uniord('Z'), Jevix::ALPHA | Jevix::LAT | Jevix::PRINATABLE | Jevix::NAME); addChRangeClass($tbl, uniord('а'), uniord('я'), Jevix::ALPHA | Jevix::PRINATABLE | Jevix::RUS); addChRangeClass($tbl, uniord('А'), uniord('Я'), Jevix::ALPHA | Jevix::PRINATABLE | Jevix::RUS); addChRangeClass($tbl, uniord('0'), uniord('9'), Jevix::NUMERIC | Jevix::NAME | Jevix::PRINATABLE | Jevix::URL); addChClass($tbl, array(' ', "\t"), Jevix::SPACE); addChClass($tbl, array("\r", "\n"), Jevix::NL, true); addChClass($tbl, array('"'), Jevix::TAG_QUOTE | Jevix::HTML_QUOTE | Jevix::TAG_QUOTE | Jevix::QUOTE_OPEN | Jevix::QUOTE_CLOSE | Jevix::PRINATABLE); addChClass($tbl, array("'"), Jevix::TAG_QUOTE | Jevix::TAG_QUOTE | Jevix::PRINATABLE); addChClass($tbl, array('.', ',', '!', '?', ':', ';'), Jevix::PUNCTUATUON | Jevix::PRINATABLE, true); addChClass($tbl, array('ё', 'Ё'), Jevix::ALPHA | Jevix::PRINATABLE | Jevix::RUS); addChClass($tbl, array('/', '.', '&', '?', '%', '-', '_', '=', ';', '+', '#', '|'), Jevix::URL | Jevix::PRINATABLE, true); ob_start(); var_export($tbl); $res = ob_get_clean(); print str_replace(array("\n", ' '), '', $res) . ';';
require 'qevix.php'; function addChClass(&$table, $chars, $class) { foreach ($chars as $ch) { $ord = Qevix::ord($ch); $table[$ord] = (isset($table[$ord]) ? $table[$ord] : 0) | $class; } } function addChRangeClass(&$table, $from, $to, $class) { for ($i = $from; $i <= $to; $i++) { $table[$i] = (isset($table[$i]) ? $table[$i] : 0) | $class; } } $table = array(); addChRangeClass($table, 0, 0x20, Qevix::NOPRINT); addChRangeClass($table, Qevix::ord('a'), Qevix::ord('z'), Qevix::ALPHA | Qevix::PRINATABLE | Qevix::TAG_NAME | Qevix::TAG_PARAM_NAME); addChRangeClass($table, Qevix::ord('A'), Qevix::ord('Z'), Qevix::ALPHA | Qevix::PRINATABLE | Qevix::TAG_NAME | Qevix::TAG_PARAM_NAME); addChRangeClass($table, Qevix::ord('0'), Qevix::ord('9'), Qevix::NUMERIC | Qevix::PRINATABLE | Qevix::TAG_NAME | Qevix::TAG_PARAM_NAME); addChClass($table, array('-'), Qevix::TAG_PARAM_NAME | Qevix::PRINATABLE); addChClass($table, array(' ', "\t"), Qevix::SPACE); addChClass($table, array("\r", "\n"), Qevix::NL); addChClass($table, array('"'), Qevix::TAG_QUOTE | Qevix::TEXT_QUOTE | Qevix::PRINATABLE); addChClass($table, array("'"), Qevix::TAG_QUOTE | Qevix::PRINATABLE); addChClass($table, array('.', ',', '!', '?', ':', ';'), Qevix::PUNCTUATUON | Qevix::PRINATABLE); addChClass($table, array('<', '>', '[', ']', '{', '}', '(', ')'), Qevix::TEXT_BRACKET | Qevix::PRINATABLE); addChClass($table, array('@', '#', '$'), Qevix::SPECIAL_CHAR | Qevix::PRINATABLE); ob_start(); var_export($table); $res = ob_get_clean(); echo str_replace(array("\n", ' '), '', $res) . ';';