Forum Webscript.Ru
Программирование => Perl => Тема начата: AndyAN от 27 Сентября 2004, 12:56:05
-
Это сложно объяснить.... у меня поиск ищет и находит слово INDESIT но не может найти indesit а в базе данных есть запись INDESIT
вот не знаю что делать
ссылка на код http://www.ezdok.ru/search.txt
-
поставь ключ i в регекспах
а если вся база в верхнем регистре, то проще (и быстрее) просто все входные параметры переводить в вверхн.рег.
@text_arr = split(/ /, uc $text);
-
Спасио! ключ i как раз то что надо. но проблема в том что я не могу разобраться в синтаксесе. можешь подсказать куда его правильно поставить в моем случае? Дело в том что база не только в верхнем регистре, записи там разные, поэто мне надо что бы он просто не реагировал на регистр
-
надо глянуть на rutextup - сея подпрограмма чего делает (она тута uss_lib.pl)?
-
вот чего она делает
http://www.ezdok.ru/uss_lib.txt
наворотил мой предшественник, а я понять ничего не могу
-
if (join("",$name,$model) =~/$word/i){
вместо
if ((rutextup("\\I$name$model\\E") =~ rutextup(\\I$word\\E)){
+ вначале пропиши
use locale;
А вообще там :) стоит все конкретно переделать, например библиотечку uss_lib.pl :) можно и не использовать учитывая,что из нее там пару функций по разу использовались..
-
да, с англиским алфавитом то теперь все работает, но началась таже фигня с русскими словами...
-
AndyAN
Green Kakadu:
use locale;
поставь в саааамое начало скрипта:)
-
так поставил.... все равно с русским язаком теперь проблема, находит русские слова только при точном совпадении запроса, а если регистр отличается - беда. а английские слова теперь нормально находит, независимо от регистра.
вот код http://www.ezdok.ru/search.txt
-
пробуй
use POSIX qw(locale_h);
use locale;
setlocale(LC_CTYPE,\'ru_RU.CP1251\');
-
NeoNox
glebushka
Green Kakadu
Вау! СПАСИБО всем огромное!!!!!!! помогло! Большое спасибо за помошь!