Вопрос № 57070: Подскажите как сделать срипт поиска по сайту. Или хотя бы то, как сделать так, чтобы в скрипт поиска попадали ВСЕ страницы сайта для проверки.
Вопрос второй: Есть элемент формы < name="Vasia"></>, как сделать так, чтобы при...
Вопрос № 57.070
Подскажите как сделать срипт поиска по сайту. Или хотя бы то, как сделать так, чтобы в скрипт поиска попадали ВСЕ страницы сайта для проверки.
Вопрос второй: Есть элемент формы < name="Vasia"></>, как сделать так, чтобы при копировании данных введенных в данную форму учитывалссь пробельные символы (если их больше двух) и ,самое главное, ПЕРЕНОСЫ НА НОВУЮ СТРОКУ. (/*данные из этой формы я заношу в базу данных*/)
Приложение:
Отправлен: 28.09.2006, 21:45
Вопрос задал: PetrKi. (статус: Посетитель)
Всего ответов: 4 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Евгений Крюков
Здравствуйте, PetrKi.!
Вопрос объемный. Вопрос организации поиска по сайту находиться в прямой зависимости от способа построения сайта. Я знаю несколько подходов:
1. Всё содержимое сайта сводится в одну таблицу, поиск происходит по этой таблице. Минус такого способа - не всегда содержимое сайта настолько однородно, что можно свести все содержимое к одной таблице.
2. Модульное построение сайта - как правило в каждом модуле, который отвечает за тот или иной вид раздела сайта есть унифицированный метод, позволяющий производить поиск по этому виду контента. Проще говоря, есть на сайте три раздела - новости, статьи и список вакансий. При получении поискового запроса скрипт передает поисковую фразу скриптам-обработчикам, которые уже производят поиск внутри своих структур и возвращают нужные ссылки на новости статьи или вакансии.
Первые два способа применимы на движковых сайтах.
3. Поисковые пауки - скрипты (часто внешние, типа Яндекс-поиск по сайту). Такие скрипты принимают в качестве параметра адрес страницы, идут по ссылкам на сайте, составляют каталог всех найденных страниц и индексируют содержимое. Так построены большинство поисковых систем в Интернете. Иногда для таких скриптов готовиться специальный файл, в котором содержаться все страницы сайта. Минус - не всегда такие скрипты могут самостоятельно найти все страницы сайта.
Для того, чтобы определить, какой вид поиска подойдет Вашему сайту, нужно знать, как он построен.
Самый простой и менее затратный способ для небольших сайтов - поставить форму какой-нибудь поисковой системы, например Яндекса. Даже если поисковая система не все найдет - всегда можно добавить нужную страницу вручную. Для больших сайтов универсального решения, насколько я знаю, не существует. Поисковый механизм надо закладывать еще на стадии проектирования движка.
По второму вопросу - зачем их учитывать? Можно просто их удалить/заменить/сделать что-то другое. В PHP есть trim, есть str_replace и куча других функций для обработки строк. Можно также очистить строку и непосредственно при вставке/обновлении в базу (REPLACE,LTRIM,RTRIM и т.д.)
--------- Большинство ответов на вопросы в рассылках находиться через Яндекс за 1 мин.
Ответ отправил: Евгений Крюков (статус: Студент)
Ответ отправлен: 28.09.2006, 22:58 Оценка за ответ: 5
Отвечает: Www2
Здравствуйте, PetrKi.!
По второму вопросу:
< name="Vasia" cols="72" rows="10"></>
Предназначена для ввода многострочных текстов, в т.ч. с пробелами. Между открывающим и закрывающим тегами можно вставить текст по умолчанию, который будет в форме сразу после её загрузки.
--------- Нет правил без исключений, правило без исключения - это исключение из правил.
Ответ отправил: Www2 (статус: Студент)
Ответ отправлен: 29.09.2006, 09:33
Отвечает: PVS
Здравствуйте, PetrKi.!
По первому вопросу:
Зависит от того как именно Вы храните информацию. Для поиска - выгоднее хранение в базе данных, но по скорости оно уступает файлам. Обычно в базе хранят ссылки на страницу и ключевые слова для поиска, но можно просто хранить всю структуру сайта и по очереди перебирать файлы и искать в них нужное слово (тормозить будет ужасно).
По второму:
Насколько я понимаю необходимо в базе сохранить информацию и вывести ее в том виде как она была введена. Проще всего - воспользоватся тэгом PRE, но можно и поменять все пробелы на NBSP, и воспользоватся функцией nl2br чтобы Enter'ы стали тэгми BR
Ответ отправил: PVS (статус: Студент)
Ответ отправлен: 29.09.2006, 10:13 Оценка за ответ: 5 Комментарий оценки: Вот то, что было нужно... Мне говорили про nl2br, но не сказали, что она
заменяет на . Спасибооольшое. (я уже 2 месяца программирую на PHP)
Отвечает: Rok-set
Здравствуйте, PetrKi.!
Одно замечание по второму вопросу - в базе данных данные из формы сохраняются в том виде, в котором они были введены, если их перед этим не обработать. Для проверки предлагаю написать маленький скрипт записи в файл переменной из базы и открыть её в wordPad (блокнот неправильно показывает переходы на строку). Для правильного вывода советую воспользоваться переделкой текста в html код, так как различные пользователи сидят на разных системах, в которых переход строки осуществляется по-разному, в итоге тег pre при
выводе не совсем корректно сработает. Для такой задачи советую литературу по регулярным выражениям "Фридл Дж. Регулярные выражения" (ну это также в общеобразовательных целях) на all-ebooks.com
--------- нет преград для разума!
Ответ отправил: Rok-set (статус: 7-ой класс)
Ответ отправлен: 03.10.2006, 07:53