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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Кирилица в регулярных выражениях...

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
DeadBoy
Отправлено: 31 Марта, 2010 - 11:05:29
Post Id



Новичок


Покинул форум
Сообщений всего: 25
Дата рег-ции: Март 2010  
Откуда: р.п Воротынец


Помог: 0 раз(а)




Здравствуйте! Подскажите как через РВ реализовать удаление из строковой переменной всего, кроме русских букв и знаков _ = + . , -

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

Тестирую на HomServ под WindowsXP

(Отредактировано автором: 31 Марта, 2010 - 11:06:02)



-----
Если я не прав, поправьте меня...
 
 Top
Champion Супермодератор
Отправлено: 31 Марта, 2010 - 11:13:32
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Надо найти код символа А и я. Символы кириллицы будут [\uAAAA-\uяяяя]
 
 Top
DeadBoy
Отправлено: 31 Марта, 2010 - 11:16:37
Post Id



Новичок


Покинул форум
Сообщений всего: 25
Дата рег-ции: Март 2010  
Откуда: р.п Воротынец


Помог: 0 раз(а)




Гдеб его найти???? У меня есть какие то... А вид то какой??? Этих кодов...
(Добавление)
Вроде нашел. а это со preg_replace прокатит???


-----
Если я не прав, поправьте меня...
 
 Top
Champion Супермодератор
Отправлено: 31 Марта, 2010 - 11:47:31
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Прокатит обязательно. Попробуй.
 
 Top
DeadBoy
Отправлено: 31 Марта, 2010 - 11:54:53
Post Id



Новичок


Покинул форум
Сообщений всего: 25
Дата рег-ции: Март 2010  
Откуда: р.п Воротынец


Помог: 0 раз(а)




Champion пишет:
Прокатит обязательно. Попробуй.


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

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

Пардон: preg_replace("\[^u0412-u0443]\", "", $string);

(Отредактировано автором: 31 Марта, 2010 - 12:00:45)



-----
Если я не прав, поправьте меня...
 
 Top
Champion Супермодератор
Отправлено: 31 Марта, 2010 - 12:01:47
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




DeadBoy пишет:
u0412-u0443
Только не u, а \u. И что-то мало букв 412-443. Есть же и большие и маленькие...
(Добавление)
DeadBoy пишет:
и знаков _ = + . , -
туда же дописать
 
 Top
DeadBoy
Отправлено: 31 Марта, 2010 - 12:05:55
Post Id



Новичок


Покинул форум
Сообщений всего: 25
Дата рег-ции: Март 2010  
Откуда: р.п Воротынец


Помог: 0 раз(а)




Champion пишет:
DeadBoy пишет:
u0412-u0443
Только не u, а \u. И что-то мало букв 412-443. Есть же и большие и маленькие...
(Добавление)
DeadBoy пишет:
и знаков _ = + . , -
туда же дописать


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

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

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

Да???


-----
Если я не прав, поправьте меня...
 
 Top
DeadBoy
Отправлено: 05 Апреля, 2010 - 07:28:05
Post Id



Новичок


Покинул форум
Сообщений всего: 25
Дата рег-ции: Март 2010  
Откуда: р.п Воротынец


Помог: 0 раз(а)




Да нифига ничего не работает, может знает кто как вырезать из строки всё кроме русских и латинских букв??? На UTF-8...

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

htmlspecialchars - достаточно этим фильтровать сообщение, дабы обезопасится от взлома???


-----
Если я не прав, поправьте меня...
 
 Top
chaynyk
Отправлено: 19 Апреля, 2010 - 22:22:35
Post Id



Гость


Покинул форум
Сообщений всего: 118
Дата рег-ции: Сент. 2007  
Откуда: MOSCOW


Помог: 0 раз(а)




PHP:
скопировать код в буфер обмена
  1. $new_strong=preg_replace("#[0-9\>\?\/\\\&\^\*\|\$\<]+#i", "", $strong);

Но возможно, каждый знак по очереди через цикл.
А вообще, по поводу кирилици прочитай мой старенький комментарий в этом посту
http://forum.php.su/topic.php?fo...m=4&topic=21

(Отредактировано автором: 19 Апреля, 2010 - 22:33:15)



-----
Чайник в PHP и SEO,http://fleshky[dot]ru
 
 Top
JustUserR
Отправлено: 20 Апреля, 2010 - 14:17:18
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




DeadBoy пишет:
htmlspecialchars - достаточно этим фильтровать сообщение, дабы обезопасится от взлома???
Если вы сохраняете данные в БД или текстовый файл то самое главное это проэкранировать данные - лучше использовать addslashes в общем случае или mysql_real_escape_string для БД
DeadBoy пишет:
Да нифига ничего не работает, может знает кто как вырезать из строки всё кроме русских и латинских букв??? На UTF-8...
Попробуйте установить соответствующую локаль в PHP-скрипте и сохранить его в нужно кодироке - потому что строковые функции и регулярные выражения зависят от нее (Хотя мы используем и численные представления типа \uXXXX - но если попадутся данные подставляемые из строковых констант PHP-скрипта то это будет существенно)


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Регулярные выражения »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB