Example #1
0
            $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) . ';';
Example #2
0
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) . ';';