Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: И снова регулярка в Unix и русские символы
 
 автор: Adj   (21.01.2010 в 16:49)   письмо автору
 
 

В продолжении темы http://www.softtime.ru/forum/read.php?id_forum=6&id_theme=71220.

Проблема следующая и опять с руссими символами.
При проверке данных полученных из формы, например, строка "Главная страница" совпадает с регулярным выражением:
'/^[\wА-Яа-я ._-]{1,128}$/'

, а при проверке данных полученных через Ajax это РВ уже не работает, но работает вот это:
'/^[\wА-Яа-я ._-]{1,128}/' // без метасимвола $

Данные предварительно пропускаются через ф-ю trim().

В чем тут загвоздка?

  Ответить  
 
 автор: GeorgeIV   (21.01.2010 в 19:00)   письмо автору
 
   для: Adj   (21.01.2010 в 16:49)
 

данные полученные через аякс не заканчиваются одним из указанных смволов

  Ответить  
 
 автор: Adj   (21.01.2010 в 21:09)   письмо автору
 
   для: GeorgeIV   (21.01.2010 в 19:00)
 

Других символов нет, по крайней мере видимых.
Если передается строка из латинских символов, то все нормально, первый шаблон срабатывает.

Аяксом, методом POST я передаю следующий запрос:
"go=section_edit&val=name&id="+ id +"&name="+ encodeURIComponent(text)

, где параметр text содержит строку, которую и необходимо сверить с шаблоном.

В заголовках запрос имеет вид:
go=section_edit&val=name&id=2&name=%D0%93%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F%20%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0

На домашнем ПК получаемую строку я преобразовывал из utf-8 в windows-1251. На хостинге же почему-то такое преобразование не нужно, $_POST['text'] уже содержит строку в кодировке windows-1251. Почему не знаю.

  Ответить  
 
 автор: Adj   (21.01.2010 в 21:19)   письмо автору
 
   для: Adj   (21.01.2010 в 21:09)
 

Нет я ошибся
> ..., $_POST['text'] уже содержит строку в кодировке windows-1251.

Изначально $_POST['text'] в UTF-8, но при выводе ее в браузер, хотя сайт и в windows-1251 кодировке, строка отображается нормально, НЕ знаки вопроса. А вот после преобразования знаки вопроса появляются.

  Ответить  
 
 автор: Adj   (22.01.2010 в 00:13)   письмо автору
 
   для: Adj   (21.01.2010 в 21:19)
 

Проблема решилась. Добавил "AddDefaultCharset windows-1251" в файл .htaccess.

PS: Это мой первый опыт переноса сайта на хостинг.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования