-
народ давайте активнее, что еще надо в функциональность добавить? Кроме поиска по сообщениям (это я уже знаю)
-
>[40] xayam © (2008-08-31 16:00:00) шлюх и блэкджэк.
--- Understanding is not required. Only obedience.
-
любой каприз за Ваши деньги))
-
еще такая проблема. Как в php получить в строку из html-файла текст без форматирования (без тегов, без атрибутов, только отображаемый текст), чтобы сделать индексатор файла? Или как-то по-другому делают?
-
strip_tags()
-
хотя я предпочитаю хранить в базе исходный текст, а не html :) и кешировать результаты поиска на некоторое время, чтобы лазия по страницам не искать снова и снова
-
> antonn © (31.08.08 22:05) [44] > strip_tags()
угу, уже нашел.
-
> antonn © (31.08.08 22:10) [45]
че то регулярные выражения подзабыл, как выделять русские/английские слова для индексирования? У меня получилось так preg_match_all("|[a-zA-Zа-яА-Я0-9]*|", $contents, $out, PREG_PATTERN_ORDER); но не работает
-
точней вот так работает
$count = preg_match_all("/[a-zA-Z0-9_а-яА-Я]/i", $contents, $out, PREG_PATTERN_ORDER);
if ($count)
for ($i = 0; $i < $count; $i++)
echo $out[0][$i].'<br />';
но с русскими буквами что-то не то, вопросики в некоторых местах выводит
-
чет не могу представить себе, как оно должно работать... а вообще... :) setlocale( LC_CTYPE, array('ru_RU.CP1251', 'rus_RUS.1251'));
$text="++155 %dd% text1 value1=sАвs Бяка text2 value2=aaa 10 asd";
preg_match_all("#\b(\w+)#i", $text, $out, PREG_PATTERN_ORDER);
print_r($out);
-
в принципе "i" там не нужна...
-
> antonn © (31.08.08 23:44) [49]
так тоже вопросы, а вот так вопросов нет -
$count = preg_match_all("/[a-zA-Zа-Я0-9_]/i", $contents, $out, PREG_PATTERN_ORDER);
if ($count)
for ($i = 0; $i < $count; $i++)
echo $out[0][$i].'<br />';
только почему то русские слова неправильно отбираются, есть короче 4 символов и какие-то обрезанные попадаются
-
а как utf8 в локали установить?
-
в регулярке "/(ля-ля-ля)/U"
-
соответственно локаль вообще убери, это я на локалхосте эксперементировал :)
-
> antonn © (01.09.08 00:05) [53] > в регулярке "/(ля-ля-ля)/U"
не помогает, еще и английские слова разбиваются на мелкие ((
-
в книжке вычитал что так нужно
$count = preg_match_all("/\b[\w]\b/s", $contents, $out, PREG_PATTERN_ORDER);
но тоже не работает с русскими буквами, че за фигня может быть?
-
> не помогает, еще и английские слова разбиваются на мелкие > ((
а ты прям так пишешь: /[a-zA-Zа-Я0-9_]{4,}/i ? :) у меня #\b(\w)#is выбирает слова от 4х символов, все работает...
-
> antonn © (02.09.08 00:13) [57] > у меня #\b(\w{4,})#is выбирает слова от 4х символов, все > работает...
а у меня не работает работает более менее вот так
$count = preg_match_all("/[\x80-\xFFa-z0-9_]/i", $contents, $out, PREG_PATTERN_ORDER);
с английскими словами нормально, отбираются 4-хсимольные и длинее, а русские все подряд отбмраются и короче 4-х символов. Что за фигня?
-
еще вопрос, в php есть функция для удаления повторяющихся элементов из массива?
|