Программирование > PHP

Как убрать чувствительность к регистру при поиске?

(1/2) > >>

NiggaInDaStudio:
Подскажите пожалуйста.
Есть работающий скрипт поиска по сайту:
http://www.teploenergoplast.ru/search.php

Если ввести "РАДИАТОРЫ" найдется один документ, а именно http://www.teploenergoplast.ru/rad/st_kermi.php
так как в нем есть слово это слово именно с заглавных букв.
Вводим "Радиаторы" - находится 10 документов, это те в которых присутствует это слово, если оно начинается с заглавной,
а все остальные буквы прописные.
Вводим "радиаторы" и тут уже 34 документа, включающие в себя все предыдущие (и этот http://www.teploenergoplast.ru/rad/st_kermi.php).
Как бы сделать так, чтобы скрипт не обращал внимание на регистр и выводил все?
Вариант, чтобы поисковый запрос преобразовывался в прописные не подойдет,
так как например по зпаросу "ппу" находится 9 документов, а "ППУ" - 10, тут все наоборот.

search.php

NiggaInDaStudio:
И на всякый случай:

config.php

Altaxar:
вот собственно строка поиска, ее и надо модернизировать,
 $pos = strpos($word, $query);

попробуй так:

if ( ($wholeword[$j]==1) && ($word != $query) ) {$word = "";};
$pos = strpos($word, $query);

замени на  :
$word=strtolower($word);
if ( ($wholeword[$j]==1) && ($word != $query) ) {$word = "";};
$pos = strpos($word, $query);

и еще (немного выше, чтобы сымволы поиска также перевести в нижний регистр) :

for ($j=0; $j

NiggaInDaStudio:
Altaxar, спасибо, но не помогло. По прежнему регистр такой какой я ввожу. Но даже если это бы и заработало, тут даже не в этом дело. Повторюсь, вариант, чтобы поисковый запрос преобразовывался в прописные не подойдет,
так как например по зпаросу "ппу" находится 9 документов, а "ППУ" - 10, тут все наоборот.

Altaxar:
$word=strtolower($word);
if ( ($wholeword[$j]==1) && ($word != $query) ) {$word = "";};
$pos = strpos($word, $query);

$word- содержит как раз строку в которой ищет запрос,
strpos()- выдает место нахождение строки в другой строке.

$pos = strpos($word, $query); - строка пересечение даный, запроса с данными которые он читает из файла.
$word=strtolower($word); - эта строка должна была перевести в нижний регистр, строку в которой происходит поиск. Почему не перевела, разберайся.

P.S. можеш заметить, что поиск производится посимвольно, тоесть $word содержит 1 символ, который ищет в запросе.

Навигация

[0] Главная страница сообщений

[#] Следующая страница

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 
Перейти к полной версии