eregi_replace странное поведение

Vital_N

Новичок
eregi_replace странное поведение

Привет!
делаю поиск, при выводе результатов выделяю запрос
PHP:
$zapros = eregi_replace(" +", " ", $zapros); 
$zwords = explode(' ',$zapros);
foreach ($zwords as $word){
$p_name = eregi_replace(substr($word,0,-2),"<span class='hilite'>\\0</span>",$p_name);
}
под виндой, на локальной машине все ок, т.е. если набрать в посике "палатки", то выделяются и "Палатки", выложил на тестовый сервак под linux, и выделяется все с учетом регистра, т.е. если набрать "палатки" - то найдутся палатки с этим все ок, но вот выделение работает только с учетом регистра, т.е. выделятся найденные слова "палатки", но не "Палатки", и наоборот
В чем может быть трабла, подскажите плиз, может кто-нить наталкивался на подобные грабли, может что-нить с локалью, или это ни причем?
 

DimbIch

Новичок
preg_replace быстрее работает
а что такое /REGEXP/i не учил ???
читать ман ......
 

Vital_N

Новичок
DimbIch
в ман тебя и сам послать могу - дело можешь сказать

ЗЫ цитирую тебе ман кстати
This function is identical to ereg_replace() except that this ignores case distinction when matching alphabetic characters.
 

DimbIch

Новичок
а я что сказал не дело ???
//i - вот и все.....
i - это не обращать внимание не регистр...
поучи регулярные выржения...
 

Vital_N

Новичок
DimbIch

ну и что ты хочешь сказать?что eregi_replace не работает? или что?
 

DimbIch

Новичок
о прости не заметил eregI.....

-~{}~ 23.02.05 23:03:

This is a 'faster' way to highlight search results:
$content = str_replace($query, "<span class=\"highlight\">" . $query . "</span>", $content);

прямо из мануала...
 

Vital_N

Новичок
DimbIch так в том то и дело, что совпадение может быть по "Палатки", а в запросе будет "палатки" - и если сделать
$content = str_replace($query, "<span class=\"highlight\">" . $query . "</span>", $content); - то ты заменишь Оригинальный вариант, на тот, что был в запросе :(

поэтому и пользую eregi_replace - под виндой все ок, под линухом - хрен
 

Vital_N

Новичок
блин хрень какая-то попробовал
$c_title = preg_replace('/'.$word.'/i',"<span class='hilite'>\\0</span>",$c_title);

под виндой все ок - т.е. выделяет незвисимо от регистра - выложил на тот же линух сервак опять та же хрень - реигирует на регистр, в чем же может быть засада?

-~{}~ 24.02.05 00:57:

как я и думал - это локаль
но как нашел поиском по форуму -
setlocale (LC_ALL, array ('ru_RU.CP1251', 'rus_RUS.1251'));
не помогло
зато работает вот так
setlocale (LC_ALL, array ('ru_RU.KOI8-R', 'rus_RUS.1251'));
 
Сверху