RFpro.ru: Программирование на PHP

  Все выпуски  

RusFAQ.ru: Программирование на PHP


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / PHP

Выпуск № 477
от 03.10.2006, 23:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 367, Экспертов: 49
В номере:Вопросов: 1, Ответов: 4


Вопрос № 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


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.36 от 06.09.2006
Яндекс Rambler's Top100

В избранное