|
|
|
| Хочется спросить следующее:
как сделать что бы скрипт поиска по сайту бытл не чувствительным к регистру?
заранее спасибо | |
|
|
|
|
|
|
|
для: Peter
(07.12.2004 в 15:56)
| | Без приведения скрипта поиска ответить подробно нельзя.
В любом случае, для того чтобы поиск был нечувствительным к регистру необходимо использовать функции поиска, которые будут нечувствительны к регистру.
Я вот что имею ввиду:
есть строковая функция
string strstr ( string haystack, string needle)
|
Она ищет подстроку в строке. Эта функция регистрозависима.
А есть функция:
string stristr ( string haystack, string needle)
|
Это регистроНЕзависимый вариант.
А чтобы регулярное выражение было регистроНЕзависимое - нужно добавить к нему модификатор i.
Т.е. нужно знать как работает скрипт поиска и тогда можно предложить решение. | |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(07.12.2004 в 20:28)
| | скрипт выгляди вот так... | |
|
|
|
|
|
|
|
для: Peter
(08.12.2004 в 09:30)
| | Странно... вроде должен не должен от регистра зависить... Зависимость в регистре наблюдается при вводе любых ключевых слов? | |
|
|
|
|
|
|
|
для: cheops
(08.12.2004 в 12:59)
| | Да (киррилица)
"Слово, слово, СЛОВО" - ищет только идентичные порегистру. | |
|
|
|
|
|
|
|
для: Peter
(08.12.2004 в 09:30)
| | Скорее всего не срабатывают вот эти строки:
<?
$string=strtolower($string);
$stringer=strtolower($stringer);
?>
|
Я замечал проблемы с преобразованием киррилицы.
Для преобразования используйте следующую конструкцию.
<?
$str="СТРОКА";
$str = strtr($str, "АБВГДЕЁЖЗИКЛМНОПРСТУФХЦЧШЩЬЪЫЭЮЯ",
"абвгдеёжзикламопрстуфхцчшщьъыэюя");
echo $str;
?>
|
PS: проверьте весь ли алфавит я перебрал (мог что нибудь пропустить).
И вот эту функцию может тоже заменить на регистронезависимую..
$string = ereg_replace($whatdoreplace, $num, $string);
|
Вместо нее применить функцию eregi_replace()
http://www.softtime.ru/dic/id_dic=76&id_group=1 | |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(08.12.2004 в 16:27)
| | Наконец-то дошли руки проверить данные вами советы...
Применил следующее:
$str="СТРОКА";
$str = strtr($str, "АБВГДЕЁЖЗИКЛМНОПРСТУФХЦЧШЩЬЪЫЭЮЯ",
"абвгдеёжзикламопрстуфхцчшщьъыэюя");
Результат: поиск происходит только по нижнему регистру, что в принципе уже результат, но всеравно кaк-то криво...
Тоесть, слова вбивать можно только в нижнем регистре, а находит он все подряд...
А скрипт теперь выглядит вот-так>>> | |
|
|
|
|
|
|
|
для: Peter
(14.12.2004 в 14:54)
| | >Тоесть, слова вбивать можно только в нижнем регистре, а находит он все подряд...
Так а Вы тот же самый прием на поисковое слово примените. И тогда можно будет вводить все подряд и искать будет все подряд. | |
|
|
|
|
 3.9 Кб |
|
|
для: glsv (Дизайнер)
(14.12.2004 в 20:03)
| | Ну вот, теперь все работает, в принципе таким поиском уже можно пользоваться.
Хотя условия поиска остаются очень жесткими (словосочитания ищутся именно в том порядке как набраны), так-что его еще можно дорабатывать...
Всем спасибо, жду дальнейших советов | |
|
|
|