Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: регистр регистру рознь!
 
 автор: Peter   (07.12.2004 в 15:56)   письмо автору
 
 

Хочется спросить следующее:
как сделать что бы скрипт поиска по сайту бытл не чувствительным к регистру?
заранее спасибо

   
 
 автор: glsv (Дизайнер)   (07.12.2004 в 20:28)   письмо автору
 
   для: Peter   (07.12.2004 в 15:56)
 

Без приведения скрипта поиска ответить подробно нельзя.
В любом случае, для того чтобы поиск был нечувствительным к регистру необходимо использовать функции поиска, которые будут нечувствительны к регистру.

Я вот что имею ввиду:
есть строковая функция
string strstr ( string haystack, string needle)

Она ищет подстроку в строке. Эта функция регистрозависима.

А есть функция:
string stristr ( string haystack, string needle)

Это регистроНЕзависимый вариант.

А чтобы регулярное выражение было регистроНЕзависимое - нужно добавить к нему модификатор i.

Т.е. нужно знать как работает скрипт поиска и тогда можно предложить решение.

   
 
 автор: Peter   (08.12.2004 в 09:30)   письмо автору
 
   для: glsv (Дизайнер)   (07.12.2004 в 20:28)
 

скрипт выгляди вот так...

   
 
 автор: cheops   (08.12.2004 в 12:59)   письмо автору
 
   для: Peter   (08.12.2004 в 09:30)
 

Странно... вроде должен не должен от регистра зависить... Зависимость в регистре наблюдается при вводе любых ключевых слов?

   
 
 автор: Peter   (08.12.2004 в 13:33)   письмо автору
 
   для: cheops   (08.12.2004 в 12:59)
 

Да (киррилица)
"Слово, слово, СЛОВО" - ищет только идентичные порегистру.

   
 
 автор: glsv (Дизайнер)   (08.12.2004 в 16:27)   письмо автору
 
   для: 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

   
 
 автор: Peter   (14.12.2004 в 14:54)   письмо автору
 
   для: glsv (Дизайнер)   (08.12.2004 в 16:27)
 

Наконец-то дошли руки проверить данные вами советы...

Применил следующее:

$str="СТРОКА";
$str = strtr($str, "АБВГДЕЁЖЗИКЛМНОПРСТУФХЦЧШЩЬЪЫЭЮЯ",
"абвгдеёжзикламопрстуфхцчшщьъыэюя");

Результат: поиск происходит только по нижнему регистру, что в принципе уже результат, но всеравно кaк-то криво...

Тоесть, слова вбивать можно только в нижнем регистре, а находит он все подряд...
А скрипт теперь выглядит вот-так>>>

   
 
 автор: glsv (Дизайнер)   (14.12.2004 в 20:03)   письмо автору
 
   для: Peter   (14.12.2004 в 14:54)
 

>Тоесть, слова вбивать можно только в нижнем регистре, а находит он все подряд...
Так а Вы тот же самый прием на поисковое слово примените. И тогда можно будет вводить все подряд и искать будет все подряд.

   
 
 автор: Peter   (15.12.2004 в 10:42)   письмо автору
3.9 Кб
 
   для: glsv (Дизайнер)   (14.12.2004 в 20:03)
 

Ну вот, теперь все работает, в принципе таким поиском уже можно пользоваться.
Хотя условия поиска остаются очень жесткими (словосочитания ищутся именно в том порядке как набраны), так-что его еще можно дорабатывать...
Всем спасибо, жду дальнейших советов

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования