Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Кирилица в регулярных выражениях...
Форумы портала PHP.SU » PHP » Регулярные выражения » Кирилица в регулярных выражениях...

Страниц (1): [1]
 

1. DeadBoy - 31 Марта, 2010 - 11:05:29 - перейти к сообщению
Здравствуйте! Подскажите как через РВ реализовать удаление из строковой переменной всего, кроме русских букв и знаков _ = + . , -

Сам скрипт на UTF-8

Тестирую на HomServ под WindowsXP
2. Champion - 31 Марта, 2010 - 11:13:32 - перейти к сообщению
Надо найти код символа А и я. Символы кириллицы будут [\uAAAA-\uяяяя]
3. DeadBoy - 31 Марта, 2010 - 11:16:37 - перейти к сообщению
Гдеб его найти???? У меня есть какие то... А вид то какой??? Этих кодов...
(Добавление)
Вроде нашел. а это со preg_replace прокатит???
4. Champion - 31 Марта, 2010 - 11:47:31 - перейти к сообщению
Прокатит обязательно. Попробуй.
5. DeadBoy - 31 Марта, 2010 - 11:54:53 - перейти к сообщению
Champion пишет:
Прокатит обязательно. Попробуй.


Вид примерно такой: u0412

Значит preg_replace("\u0412-u0443\", "", $string);

Пардон: preg_replace("\[^u0412-u0443]\", "", $string);
6. Champion - 31 Марта, 2010 - 12:01:47 - перейти к сообщению
DeadBoy пишет:
u0412-u0443
Только не u, а \u. И что-то мало букв 412-443. Есть же и большие и маленькие...
(Добавление)
DeadBoy пишет:
и знаков _ = + . , -
туда же дописать
7. DeadBoy - 31 Марта, 2010 - 12:05:55 - перейти к сообщению
Champion пишет:
DeadBoy пишет:
u0412-u0443
Только не u, а \u. И что-то мало букв 412-443. Есть же и большие и маленькие...
(Добавление)
DeadBoy пишет:
и знаков _ = + . , -
туда же дописать


ну это для примера))))) Если верить википедии то:

0410-044F интервал получается....

preg_replace("\[^\u0412-\u0443_=+]\", "", $string);

Да???
8. DeadBoy - 05 Апреля, 2010 - 07:28:05 - перейти к сообщению
Да нифига ничего не работает, может знает кто как вырезать из строки всё кроме русских и латинских букв??? На UTF-8...

А может это HomServ тупит... Скотина...
(Добавление)
Или чтобы не ходить вокруг да около:

htmlspecialchars - достаточно этим фильтровать сообщение, дабы обезопасится от взлома???
9. chaynyk - 19 Апреля, 2010 - 22:22:35 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. $new_strong=preg_replace("#[0-9\>\?\/\\\&\^\*\|\$\<]+#i", "", $strong);

Но возможно, каждый знак по очереди через цикл.
А вообще, по поводу кирилици прочитай мой старенький комментарий в этом посту
http://forum.php.su/topic.php?fo...m=4&topic=21
10. JustUserR - 20 Апреля, 2010 - 14:17:18 - перейти к сообщению
DeadBoy пишет:
htmlspecialchars - достаточно этим фильтровать сообщение, дабы обезопасится от взлома???
Если вы сохраняете данные в БД или текстовый файл то самое главное это проэкранировать данные - лучше использовать addslashes в общем случае или mysql_real_escape_string для БД
DeadBoy пишет:
Да нифига ничего не работает, может знает кто как вырезать из строки всё кроме русских и латинских букв??? На UTF-8...
Попробуйте установить соответствующую локаль в PHP-скрипте и сохранить его в нужно кодироке - потому что строковые функции и регулярные выражения зависят от нее (Хотя мы используем и численные представления типа \uXXXX - но если попадутся данные подставляемые из строковых констант PHP-скрипта то это будет существенно)

 

Powered by ExBB FM 1.0 RC1