eregi() и регистр

Romych

Guest
eregi() и регистр

Ребят вот сматрю в справочник написанно:
eregi() - нечувствительный к регистру регулярный поиск

что получается у миня. вот кусок кода:

eregi(".{60}".$words.".{60}",$line,$post);

$words получаю из формы метадом GET
причем если в форме набираю с заглавной буквы то функция находит это слово, а вот если с прописной то ничего не находит :((((
почиму так?

Apache/1.3.28
PHP Version 4.3.3
 

Romych

Guest
да русские :(
а как быть?
переводить все в нижний регистр?
нехотелось бы (
 

untied

Сдвинутый новичок
Почему бы и не перевести в нижний или верхний?

PHP:
$line = strtr($line,"АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ","абвгдеёжзийклмнопрстуфхцчшщъыьэюя");
 

Romych

Guest
untied
на это есть функция strtolower() вообщето
;)

только мне не надо переводить не в нижний не в верхний

:)

-~{}~ 09.01.05 22:03:

да нинадо мне ничего :) я сам все найду я просто хачу панять чиво ето за хератень такая если написанно не чуствительна к регистру в отличии от ereg то почему не работает
в чем моя ошибка (специально для Фаната только не надо говорить что в том что я родился я и так это знаю ;))
 

untied

Сдвинутый новичок
Originally posted by Romych
untied
на это есть функция strtolower() вообщето
;)

только мне не надо переводить не в нижний не в верхний

:)
Если мне не изменяет память, то функция strtolower() переводит русские буквы в нижний регистр точно так же, как eregi() делает регистронезависимый поиск по русским буквам (т.е. никак).
Честно говоря, я не знаю, есть ли в PHP такое понятие, как "локаль". Но если и есть, то я все равно не стал бы полагаться на эту локаль на 100%. Ведь у одних провайдеров она может быть правильно настроена, а у других нет.

(это философские измышления, я понятия не имею, есть ли в PHP "локаль")
 

neko

tеam neko
untied
будь любезен
не знаешь
понятия не имеешь
не пиши
 

Romych

Guest
untied
neko прав

есть мысль поправить с
eregi(".{60}".$words.".{60}",$line,$post);
на
eregi(".{60}"."$words".".{60}",$line,$post);
хотя мож и это все мертвому припарка :)
все равно всем спасибо :)
 

untied

Сдвинутый новичок
Кхе!
Так может кто знает про локали в PHP. Вот он и напишет на эту тему свое мнение. Мне тоже будет интересно прочитать о чужом опыте! :D
Я просто предлагаю тему для размышления и поиска.
 

neko

tеam neko
я вроде уже написал
используйте [m]pcre[/m]

eregi локаль не поддерживает
 

untied

Сдвинутый новичок
neko, так что, если локаль настроена правильно, то функция preg_match() будет правильно выполнять регистронезависимый поиск по русским буквам?.. :eek:

Уааааааау!!!
 

Wicked

Новичок
Untied:
Скрипт написан с использованием win1251 кодировки:
PHP:
setlocale(LC_ALL, "Russian_Russia.1251");
print (int)preg_match("/^абвгдеёжзийклмнопрстуфхцчшщьыъэюя$/i", "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯ");
//prints 1
print strtolower("АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯ");
//prints абвгдеёжзийклмнопрстуфхцчшщьыъэюя
И eregi, и strtolower, и preg_match обращаются с русскими буквами нормально... т.е. соответственно текущей локали.
 
Сверху