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]   

> Без описания
murich
Отправлено: 25 Сентября, 2007 - 16:04:26
Post Id



Новичок


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


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




Нужно оставить в строке только символы кирилицы. Без знаков припинания, латиницы и всех остальных символов
Использовать str_replace() для каждого символа латиницы и знаков припинания- грамостко както и не рационально на мой взгляд.
Подскажите, что можно сделать?\n\n(Добавление)
Пробел также оставить нужно


-----
Just be a Person
 
 Top
EuGen Администратор
Отправлено: 25 Сентября, 2007 - 17:46:28
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


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




Все решается довольно просто:
PHP:
скопировать код в буфер обмена
  1.  
  2. $pattern="/[x00-x7F]*/";
  3. //$var-то, где заменяем
  4. preg_replace($pattern,'',$var);
  5.  


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
valenok
Отправлено: 25 Сентября, 2007 - 18:35:32
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


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




\x00-\x7F\n\n(Добавление)
форум съел слэш


-----
Truly yours, Sasha.
 
My status
 Top
murich
Отправлено: 25 Сентября, 2007 - 19:11:54
Post Id



Новичок


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


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




Почти то что нужно. Остались кавычки, восклицательный знак, точка, буквы "y" и "z" , скобки. Они не нужны


-----
Just be a Person
 
 Top
evgenijj
Отправлено: 25 Сентября, 2007 - 19:16:30
Post Id



Участник


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


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




Мне кажется, вы как-то вольно подошли к решению задачи. Ведь нужно оставить только кириллицу (и, возможно, пробел)
PHP:
скопировать код в буфер обмена
  1.  
  2. $text = preg_replace("#[^\\xC0-\\xFF\\s]#", "", $text);
  3.  
 
 Top
murich
Отправлено: 25 Сентября, 2007 - 19:35:42
Post Id



Новичок


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


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




Спасибо большое. Теперь все как нужно.
Спасибо вам и этому форуму за быстрые ответы на все мои ньюбовские вопросы))


-----
Just be a Person
 
 Top
Staind
Отправлено: 29 Ноября, 2007 - 21:02:46
Post Id



Гость


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


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

[+]


А почему нельзя вместо xC0-xFF написать просто [а-я]|[А-Я] - или это не совсем корректно? (я только вот вот начально изучать рег. выражения.
 
 Top
valenok
Отправлено: 08 Декабря, 2007 - 02:34:37
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


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




не везде сущетсвуют а-Я
А вот xC0-xFF есть везде


-----
Truly yours, Sasha.
 
My status
 Top
Staind
Отправлено: 12 Декабря, 2007 - 19:34:56
Post Id



Гость


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


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

[+]


Понял, спасибо. Правил везде.
 
 Top
IOpeH
Отправлено: 09 Июня, 2008 - 22:40:37
Post Id



Частый гость


Покинул форум
Сообщений всего: 175
Дата рег-ции: Нояб. 2007  


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




valenok, как понять не везде , где существует а где нет ?
 
 Top
valenok
Отправлено: 09 Июня, 2008 - 23:27:08
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


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




не во всех локалях и системах установлена кирилица.


-----
Truly yours, Sasha.
 
My status
 Top
IOpeH
Отправлено: 10 Июня, 2008 - 14:19:12
Post Id



Частый гость


Покинул форум
Сообщений всего: 175
Дата рег-ции: Нояб. 2007  


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




подскажите плиз, где можно по такие штуки xC0, xFF узнать побольше
 
 Top
chaynyk
Отправлено: 25 Марта, 2009 - 11:49:17
Post Id



Гость


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


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




Плиз, подскажите не работает на сервере [а-я].
Прибегая к вашему варианту, тоже тишина.
Как написать корректно?
(Создаваемое имя пользователя, только на кириллице)
PHP:
скопировать код в буфер обмена
  1.  
  2. if(!preg_match('/^[\xC0-\xFF]+$/', $username)) {
  3. echo    $error ;
  4. }
  5. else
  6. {
  7. //Регистрируем пользователя
  8. }
  9.  


-----
Чайник в PHP и SEO,http://fleshky[dot]ru
 
 Top
valenok
Отправлено: 25 Марта, 2009 - 16:41:46
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


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




включи сообщения об ошибках и попробуй регулярку попроще. может они не включены


-----
Truly yours, Sasha.
 
My status
 Top
chaynyk
Отправлено: 02 Апреля, 2009 - 10:33:25
Post Id



Гость


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


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




Нашел ошибку. Ни когда не думал, что такое может быть с регулярными выражениями.
Причина была в кодировки. Сам сайт в UTF-8 и БД и т.д. А [а-я], я так понимаю работает только с win. Если строка UTF-8 кодировки то [а-я] работать не будет. После перекодировки строки (для проверки) из UTF-8 в Windows -1251, все четко заработало.
Так что, кто с этим столкнется, стоит обратить на это внимание.


-----
Чайник в PHP и SEO,http://fleshky[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