За последние 24 часа нас посетили 22577 программистов и 1004 робота. Сейчас ищут 664 программиста ...

"вырезание кода символов" в поиске

Тема в разделе "PHP для новичков", создана пользователем MailRes, 11 авг 2010.

  1. MailRes

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

    С нами с:
    11 авг 2010
    Сообщения:
    19
    Симпатии:
    0
    Всем привет!

    Делаю поиск для сайта, материал на страницах берётся из БД, по которой и делаю поиск. Сначала была заморочка, то что в поле поиска можно было набрать какой либо тэг и тогда в результаты выводились практически все страницы. Нашел решение с использование функции strip_tags.
    Теперь новая заморочка, на странице есть текст "a&b", если в поиске я набираю "a&" или "a&b", то в результатах получаю ссылку на искомую страницу, если же набираю в поиске "a&b", то результатов ноль.

    Как сделать в поле поиска достаточно было набрать символ "&", а не весь код "&"
     
  2. Апельсин

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

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    Текст хранится с тегами или уже без тегов? Например, я для форума когда поиск делал, то там такая фишка - есть исходный текст со всеми тегами и заморочками ,а есть вариант для поиска, в котором нет тегов, точек, запятых и всего того мусора, а только слова от неск. букв длиной. Так вот ищется именно по полю для поиска, а выводится на экран исходный текст. Это во-первых.
    Во-вторых, перед записью в базу не обрабатывай htmlspecialchars свой текст, иначе он исказится. Юзай mysql_real_escape_string при добавлении инфы, и htmlspecialchars на выводе, если надо чтоб теги не обрабатывались. В таком случае в базе у тебя будет храниться "&", а не "&"
     
  3. MailRes

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

    С нами с:
    11 авг 2010
    Сообщения:
    19
    Симпатии:
    0
    текст хранится с тегами (код страницы, содержимое), с использование strip_tags поиск перестал мне выводить результаты, когда запрашивал "<p" или ещё что-нибудь в этом роде (например "br" "style" и прочее). Использую CMS Joomla, она сама записывает данные в базу, когда заканчиваю редактировать страницу в текстовом редакторе.