CrashX
В прошлом XSiteCMS
- Регистрация
- 6 Июн 2008
- Сообщения
- 682
- Реакции
- 114
- Автор темы
- #1
и так проблема проста как 3 копейки
вот рабочий пример для фильтрования всего кроме печатного все остальное отсекаю, это только для UTF для ASCII все намного проще
ЗЫ регулярные выражения типа а-я и a-z не расматриваю вовсе (объясняю почему да потому что мне нужно более 2 кодировок, а непечатные символы нужно удалять!)
а теперь нужно подогнать еще несколько правил
не могу пока... нужно правило XML такое же что бы вырезало все кроме валидных данных, так же на чек маил
вот эти функции под ascii, мне бы теперь отсюда выразать все кроме нужного как тут расширить диапозон до последнего символа
Добавлено через 2 минуты
тест
первой функции
вот рабочий пример для фильтрования всего кроме печатного все остальное отсекаю, это только для UTF для ASCII все намного проще
ЗЫ регулярные выражения типа а-я и a-z не расматриваю вовсе (объясняю почему да потому что мне нужно более 2 кодировок, а непечатные символы нужно удалять!)
PHP:
function string($var) {
$this->result[$var] = (string) preg_replace('
/(?>[\x09\x0A\x0D\x20-\x7E] # ASCII
|[\xC2-\xDF]((?![\x80-\xBF]) # non-overlong 2-byte
|[\x80-\xBF]{2,})
|\xE0[\xA0-\xBF][\x80-\xBF] # excluding overlongs
|[\xE1-\xEC\xEE\xEF][\x80-\xBF]{2} # straight 3-byte
|\xED[\x80-\x9F][\x80-\xBF] # excluding surrogates
|\xF0[\x90-\xBF][\x80-\xBF]{2} # planes 1-3
|[\xF1-\xF3][\x80-\xBF]{3} # planes 4-15
|\xF4[\x80-\x8F][\x80-\xBF]{2} # plane 16
)*
/sx'
,'',$this->source[$var]);
// php 5.3
//$this->result[$var] = (string) filter_var($this->source[$var],FILTER_SANITIZE_STRING,FILTER_FLAG_STRIP_LOW);
}
не могу пока... нужно правило XML такое же что бы вырезало все кроме валидных данных, так же на чек маил
вот эти функции под ascii, мне бы теперь отсюда выразать все кроме нужного как тут расширить диапозон до последнего символа
PHP:
function number($var) {
$this->result[$var] = (int) preg_replace('#[\x0-\x2F\x3A-\xFF]#','',$this->source[$var]);
//$this->result[$var] = (int) filter_var($this->source[$var],FILTER_SANITIZE_NUMBER_INT);
}
function email($var) {
$this->result[$var] = (string) preg_replace('#[\x0-\x2C\x2F\x3A-\x3F\x5B-\x60\x7B-\xFF]#','',$this->source[$var]);
//$this->result[$var] = (string) filter_var($this->source[$var],FILTER_SANITIZE_EMAIL);
}
Добавлено через 2 минуты
тест
первой функции
Код:
Array
(
[ulogin] => ыфв
[upassword] => ыя↓৾☺ƹƸЪв(*№Ю☼ᘌ
[upassword_repeated] => ыя↓৾☺ƹƸЪв(*№Ю☼ᘌ
[uemail] => qwe@qwee.we
[uname] => ыя↓৾☺ƹƸЪв(*№Ю☼ᘌ
[usurname] => qweqwe
[captcha] => 170231
)
Array
(
[id] =>
[gid] =>
[ulogin] => ыфв
[upassword] => ыяƹƸЪвЮ
[uemail] => qwe@qwee.we
[unick] =>
[uname] => ыяƹƸЪвЮ
[usurname] =>
[ulocation] =>
[ulanguage] =>
[utemplate] =>
[uregister] => 2010-05-19 07:51:59
[uvisit] => 2010-05-19 07:51:59