За последние 24 часа нас посетили 50672 программиста и 1761 робот. Сейчас ищут 625 программистов ...

Проблема со скриптом поиска.. Чувствителен к регистру

Тема в разделе "Прочие вопросы по PHP", создана пользователем Dima4321, 9 апр 2009.

  1. Dima4321

    Dima4321 Активный пользователь

    С нами с:
    1 апр 2009
    Сообщения:
    683
    Симпатии:
    0
    Всем привет.

    Суть проблемы такова.

    Есть HTML сайт прикрутил к нему скрипт поиска... База поиска в данном скрипте набивается сама в обычном текстовом редакторе. Файл называется searchdat
    т.е я прописываю ключевое слово и ссылку там. Вот например

    женя::http://www.domen.ru/женя
    ира::http://www.домен.ru/ира
    маша::http://www.домен.ru/маша

    В итоге если в поисковую форму вбить Маша (с заглавной буквы) то скрипт ничего не найдет в этом файле...Т.е изнчально я должен был бы в базу написать
    Маша маша::http://www.домен.ru/маша то тогда он бы понял..т. он ищет четкую схожесть.
    Вот сам скрипт.
    Помогите с проблемой. Чтобы он буквы верхнего регистра приравнивал и книжним в сравнении.

    Вот сам скрипт

    <?
    include ("up.php");
    include ("settings.php");
    // форма для поиска
    $form = "
    <form name=\"formsearch\" action=\"search.php\">
    <input type=\"hidden\" name=\"seenform\" value=\"y\">
    Кого ищем:<BR>
    <input type=\"text\" name=\"zapros\" value=$zapros>
    <HR size = '1' color '#000000'>
    <input type=\"submit\" name=\"Submit\" value=\"Поиск!\"><BR>
    <HR size = '1' color '#000000'></form>";

    if ($seenform != 'y')
    print $form;
    if ($seenform == 'y')
    {
    print $form;
    $fp = fopen ($searchfile, "r"); // открываем файл
    while (!feof($fp))
    {
    $read = fgets($fp, 1000); // счтиваем файл
    list($link,$url) = split('::',$read);
    if (ereg($zapros,$link)){
    //if ($zapros == $link)
    print "Найден: $link! Его Адрес: <a href = '$url'>$url</a><br>";}

    }
    }
    include ("down.php");
    ?>

    Заранее спасибо )) !!!
     
  2. Frozen

    Frozen Активный пользователь

    С нами с:
    20 окт 2008
    Сообщения:
    540
    Симпатии:
    0
    Адрес:
    Москва
  3. Dima4321

    Dima4321 Активный пользователь

    С нами с:
    1 апр 2009
    Сообщения:
    683
    Симпатии:
    0
    И что ты предлагаешь ...вставить эту строчку

    $str = strtolower($str);

    Только вот куда :cry:

    Я то думал честно говоря применить какое-то сравнение типа А=а B=b и т.д. либо A-Z=a-z

    Вопрос в силе..что и куда я должен вставить ..

    Код естественно не мой ...)) скрипт взят с сайта woweb


    Вся база для поиска на английском !! Я о том ,что эта функция mb_convert_case мне не нужна !!
     
  4. kas1e

    kas1e Активный пользователь

    С нами с:
    6 апр 2009
    Сообщения:
    280
    Симпатии:
    0
    strtolower переводит стринговую переменную в нижний регистр. сравниваешь в нижнем регистре, и проблем с этим нет.
     
  5. Dima4321

    Dima4321 Активный пользователь

    С нами с:
    1 апр 2009
    Сообщения:
    683
    Симпатии:
    0
    Да я понял ))

    Покажи куда запихать ее в этом коде ))
     
  6. GudGuy

    GudGuy Активный пользователь

    С нами с:
    14 июн 2007
    Сообщения:
    909
    Симпатии:
    0
    Адрес:
    Москва
  7. Dima4321

    Dima4321 Активный пользователь

    С нами с:
    1 апр 2009
    Сообщения:
    683
    Симпатии:
    0
    Прием как слышно !!

    Мне кто-нибудь подскажет куда это запихать $str = strtolower($str);

    Или другую функциююю но главное ,чтобы это работало !!!

    Пожалуйста сжальтесь над колекой )) :wink:
     
  8. Вльдемар

    Вльдемар Активный пользователь

    С нами с:
    20 май 2006
    Сообщения:
    635
    Симпатии:
    0
    Адрес:
    Белхород
    Это вообще то работает. Для русских букв с соответствующей локалью

    PHP:
    1. $str = strtolower($str);