Всем привет! Делаю поиск для сайта, материал на страницах берётся из БД, по которой и делаю поиск. Сначала была заморочка, то что в поле поиска можно было набрать какой либо тэг и тогда в результаты выводились практически все страницы. Нашел решение с использование функции strip_tags. Теперь новая заморочка, на странице есть текст "a&b", если в поиске я набираю "a&" или "a&b", то в результатах получаю ссылку на искомую страницу, если же набираю в поиске "a&b", то результатов ноль. Как сделать в поле поиска достаточно было набрать символ "&", а не весь код "&"
Текст хранится с тегами или уже без тегов? Например, я для форума когда поиск делал, то там такая фишка - есть исходный текст со всеми тегами и заморочками ,а есть вариант для поиска, в котором нет тегов, точек, запятых и всего того мусора, а только слова от неск. букв длиной. Так вот ищется именно по полю для поиска, а выводится на экран исходный текст. Это во-первых. Во-вторых, перед записью в базу не обрабатывай htmlspecialchars свой текст, иначе он исказится. Юзай mysql_real_escape_string при добавлении инфы, и htmlspecialchars на выводе, если надо чтоб теги не обрабатывались. В таком случае в базе у тебя будет храниться "&", а не "&"
текст хранится с тегами (код страницы, содержимое), с использование strip_tags поиск перестал мне выводить результаты, когда запрашивал "<p" или ещё что-нибудь в этом роде (например "br" "style" и прочее). Использую CMS Joomla, она сама записывает данные в базу, когда заканчиваю редактировать страницу в текстовом редакторе.