выделение искомых слов
выделение искомых слов
заметил, что на phpbb не выделяются слова в сообщениях после поиска.
ну, т.е. если я ввёл слово "поиск", то в найденных сообщениях оно должно быть выделено как-то. ведь так?
ещё английские слова вроде как выделяются и то не всегда (я так и не понял закономеронсти), а вот русские слова вообще не выделяются. бред какой-то. можете сами на своём форуме попробовать.
ну, т.е. если я ввёл слово "поиск", то в найденных сообщениях оно должно быть выделено как-то. ведь так?
ещё английские слова вроде как выделяются и то не всегда (я так и не понял закономеронсти), а вот русские слова вообще не выделяются. бред какой-то. можете сами на своём форуме попробовать.
-
- phpBB Guru
- Сообщения: 5484
- Зарегистрирован: 21 год 1 месяц
- Поблагодарили: 2 раза
AEC
Выделяются, но с русскоязычными сообщениями имеются проблемы, связано это обычно с неправильной настройкой локали. Здесь сделать ничего не удалось, а вот например при помощи Денвера и выделение русских слов работает на ура.
Выделяются, но с русскоязычными сообщениями имеются проблемы, связано это обычно с неправильной настройкой локали. Здесь сделать ничего не удалось, а вот например при помощи Денвера и выделение русских слов работает на ура.
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
а что такое этот Денвер?
а что касается русских слов, так на том же overclockers.ru выделение-то работает, а у вас, впрочем как и у меня на форуме, выделение русских слов не фурычит.
кстати, английские слова также не выделяются, если они присутствуют в ссылках (по известным причинам, но тоже ведь можно было и поправить это).
а что касается русских слов, так на том же overclockers.ru выделение-то работает, а у вас, впрочем как и у меня на форуме, выделение русских слов не фурычит.
кстати, английские слова также не выделяются, если они присутствуют в ссылках (по известным причинам, но тоже ведь можно было и поправить это).
-
- phpBB Guru
- Сообщения: 5484
- Зарегистрирован: 21 год 1 месяц
- Поблагодарили: 2 раза
AEC
Посмотрим, может что-то и удастся поправить.
Я пока не знаю, почему у меня выделение не работает, выставлял локаль по советам хостера - и все равно толка нет.
Денвер - это комплект "Апач + MySQL + etc", подробнее на оф. сайте.
Посмотрим, может что-то и удастся поправить.
Я пока не знаю, почему у меня выделение не работает, выставлял локаль по советам хостера - и все равно толка нет.
Денвер - это комплект "Апач + MySQL + etc", подробнее на оф. сайте.
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
-
- phpBB Guru
- Сообщения: 5484
- Зарегистрирован: 21 год 1 месяц
- Поблагодарили: 2 раза
-
- phpBB 1.2.0
- Сообщения: 15
- Зарегистрирован: 20 лет 4 месяца
- Откуда: Москва
возможное решение проблемы
Всем привет,
Тоже вот озадачился этой проблемой, поискал на форуме и к своему удивлению нашел только эту ветку по данной теме, но и в ней не нашел ответа
. И судя по этому форуму проблема пока не решена (или ошибаюсь??)
Самое интересное, что у меня на локальном компе в системе Windows NT4.0 + Apach 2.0.44 + PHP 4.3.0 + MySQL 3.23.55 выделение русских слов (английские само-сабой выделяются) в результатах поиска работает, а у хостера на unix'е - нет (английские - да). Форум 2.0.11
Решил попробовать покопаться/разобраться, т.к. малость в программировании понимаю. Если америку для кого открою - звиняйте
Нашел место, где собсно происходит выделение цветом. Оказалось, что это всего одна строка, но такая!!!
.... часа три пытался понять, как она работает. PHP начал постигать недавно, потому слабоват еще, а регэкспы - рег.выражения - вообще для меня вещь пока трудно постижимая, хотя знаю, штука мощная.
Вот как это выглядит в файле viewtopic.php:
Пошел на php.net в описания используемых здесь функций. Долго вникал особенно в preg_replace (http://ru2.php.net/manual/ru/function.preg-replace.php), потому как сложная и казалось, что в ней проблема кроется. И читая комментарии и примеры разных людей по использованию этой функции, случайно наткнулся на неприметное сообщение
Не совсем понял его последнюю фразу начиная с since.... Насколько я знаю, '\b' в шаблоне поиска соответствует границе слова, например пробелу или концу строки.
Короче, попробовал удалить '\b' из шаблона. И что вы думаете? Заработало! Правда следует оговориться, не совсем также, как с англ. словами. Т.е. если мы ищем "comp*", то в результатах будут подсвечены слова "computer", "computing", "compare" и т.д. А если ищем например "обра*", то будет подсвечено "обра" в словах "образец", "образина", "обращение" и т.д.
Не проверял все возможные сочетания с AND OR NOT, но два слова через пробел в строке поиска - в результатах подсвечиваются.
Ну а то, что поиск русских слов регистрозависимый наверное все знают. Тоже как бы баг. Копать видимо надо в search.php.
Тоже вот озадачился этой проблемой, поискал на форуме и к своему удивлению нашел только эту ветку по данной теме, но и в ней не нашел ответа

Самое интересное, что у меня на локальном компе в системе Windows NT4.0 + Apach 2.0.44 + PHP 4.3.0 + MySQL 3.23.55 выделение русских слов (английские само-сабой выделяются) в результатах поиска работает, а у хостера на unix'е - нет (английские - да). Форум 2.0.11
Решил попробовать покопаться/разобраться, т.к. малость в программировании понимаю. Если америку для кого открою - звиняйте

Нашел место, где собсно происходит выделение цветом. Оказалось, что это всего одна строка, но такая!!!

Вот как это выглядит в файле viewtopic.php:
Код: Выделить всё
// Highlight active words (primarily for search)
//
if ($highlight_match)
{
// This was shamelessly 'borrowed' from volker at multiartstudio dot de
// via php.net's annotated manual
$message = str_replace('\"', '"', substr(preg_replace('#(\>(((?>([^><]+|(?R)))*)\<))#se', "preg_replace('#\b(" . $highlight_match . ")\b#i', '<span style=\"color:#" . $theme['fontcolor3'] . "\"><b>\\\\1</b></span>', '\\0')", '>' . $message . '<'), 1, -1));
}
(в western кодировке Ц соответсвует О с 2-мя точками сверху, т.н. умляут, если вдруг кто не понял)nospam at home dot net
20-Nov-2003 07:09
replacing patterns with \b might yield to different results depending on your script platform. ex:
$new = preg_replace("\bЦsterreich\b/i","A","Germany Цsterreich France");
will replace on windows systems, but will not replace on linux etc., since 'Ц' will be interpreted as a '\b' itself.
Не совсем понял его последнюю фразу начиная с since.... Насколько я знаю, '\b' в шаблоне поиска соответствует границе слова, например пробелу или концу строки.
Короче, попробовал удалить '\b' из шаблона. И что вы думаете? Заработало! Правда следует оговориться, не совсем также, как с англ. словами. Т.е. если мы ищем "comp*", то в результатах будут подсвечены слова "computer", "computing", "compare" и т.д. А если ищем например "обра*", то будет подсвечено "обра" в словах "образец", "образина", "обращение" и т.д.
Не проверял все возможные сочетания с AND OR NOT, но два слова через пробел в строке поиска - в результатах подсвечиваются.
Ну а то, что поиск русских слов регистрозависимый наверное все знают. Тоже как бы баг. Копать видимо надо в search.php.
С уважением, надеюсь Вы тоже...
-
- phpBB 1.2.0
- Сообщения: 15
- Зарегистрирован: 20 лет 4 месяца
- Откуда: Москва
так как?
Ну так как такое решение проблемы? Хотелось бы услышать мнения/комментарии знатоков.
С уважением, надеюсь Вы тоже...
-
- phpBB 1.2.0
- Сообщения: 15
- Зарегистрирован: 20 лет 4 месяца
- Откуда: Москва
-
- phpBB 1.4.4
- Сообщения: 103
- Зарегистрирован: 20 лет 10 месяцев
Re: возможное решение проблемы
Неправда ваша, батенька. При правильных настройках - всё правильно ищется (вне зависимости от регистра) и правильно подсвечивается.Alex_S писал(а):Ну а то, что поиск русских слов регистрозависимый наверное все знают. Тоже как бы баг. Копать видимо надо в search.php.
// romutis
-
- phpBB 1.2.0
- Сообщения: 15
- Зарегистрирован: 20 лет 4 месяца
- Откуда: Москва
Re: возможное решение проблемы
Настройках чего? Просвятите пожалуйстаromutis писал(а):Неправда ваша, батенька. При правильных настройках - всё правильно ищется (вне зависимости от регистра) и правильно подсвечивается.

С уважением, надеюсь Вы тоже...
-
- phpBB 1.4.4
- Сообщения: 103
- Зарегистрирован: 20 лет 10 месяцев
-
- phpBB 1.2.0
- Сообщения: 15
- Зарегистрирован: 20 лет 4 месяца
- Откуда: Москва
-
- phpBB 1.4.4
- Сообщения: 103
- Зарегистрирован: 20 лет 10 месяцев