Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/30: Рейтинг темы: голосов - 30, средняя оценка - 4.67
monahoff
38 / 38 / 23
Регистрация: 26.01.2012
Сообщений: 302
1

Как сделать поиск по сайту?

06.02.2012, 18:17. Просмотров 5754. Ответов 6
Метки нет (Все метки)

Хочу сделать поисковик по сайту.
Хранение информации всех страниц организовано в файлах (.txt). Строку полученную из формы сравниваю с информацией в странице по средствам функции stristr(без учета регистра). Но эта функция возвращает всю строку после первого вхождения совпадающей подстроки. А мне нужно выяснить сколько раз искомое слово встречается в тексте(тоже без учета регистра).
Помогите решить эту задачу!
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.02.2012, 18:17
Ответы с готовыми решениями:

Как сделать простейший поиск по сайту на html без баз данных
Добрый день. Как новичок в вопросе, понимаю, насколько тяжело объяснять таким как я примитивные...

Как сделать поиск по сайту с базой данных на xml
Здравствуйте. Есть сайт, хотел обновить на нем поиск. Сейчас он работает таким образом, что при...

Как организовать поиск по сайту?
Назрел вопрос по поиску: не знаю как правильно его реализовать, погуглил нашел какой то метод GET,...

Как реализуется поиск по сайту?
Как реализуется поиск по сайту? Через базы данных? Если да, то как справляются с нагрузкой? Или она...

Как написать поиск по сайту на рhp?
подскажите как написать поиск по сайту на рhp. может кто писал??

6
Denis St.
44 / 25 / 15
Регистрация: 07.11.2011
Сообщений: 75
09.02.2012, 01:25 2
substr_count() возвращает число вхождений подстроки. А вообще забудь про файлы и скачай нормальный самоучитель по PHP + MySQL. Твой сайт будет развиваться и рано или поздно ты поймешь что хранение контента в файлах это огромная рутина. MySQL прекрасная вещь и легка в освоении...
1
monahoff
38 / 38 / 23
Регистрация: 26.01.2012
Сообщений: 302
09.02.2012, 13:34  [ТС] 3
Спасибо!
Первый сайт я намеренно решил сделать на файлах, только лишь потому, что он очень маленький, а SQL еще впереди))
0
Denis St.
44 / 25 / 15
Регистрация: 07.11.2011
Сообщений: 75
09.02.2012, 13:38 4
Ну желаю удачи)
0
monahoff
38 / 38 / 23
Регистрация: 26.01.2012
Сообщений: 302
09.02.2012, 14:42  [ТС] 5
обана!!!
substr_count() чувствительна к регистру, а значит если у меня в тексте будут слова с заглавной буквы или наоборот, то функция их проглядит...я решил действовать так, пихаю исходный текст в массив explode, потом прохожусь по этому массиву перебором foreach и к каждому элементу в цикле применяю stristr - ей все равно с какой буквы написано, тогда заветный код выдаст мне количество совпадений с исходным словом на каждой странице. Как считаешь, выход?
0
Denis St.
44 / 25 / 15
Регистрация: 07.11.2011
Сообщений: 75
09.02.2012, 15:10 6
Пишу без сервака, поэтому могу ошибаться.

Добавлено через 6 минут
Можно функцию забацать
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?
  function str_count(&$word, &$file) {
  $k=0;
  $fp=fopen($file,"r");
  while (!feof($fp)) {
  $g=fgets($fp);
  $k=$k+stristr($word,$g);
  return $k;
}
fclose($fp);
}
 
echo '<p>Количество повторений слова "разработка" в файле content1.txt: </p>'
.str_count("разработка",'content.txt');
?>
Как-то так. Если что - подправь.

Добавлено через 13 минут
Ошибся в прошлом сообщении. Подумал о функции substr_count.

Пишу без сервака, поэтому могу ошибаться.
Можно функцию забацать
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?
  function str_count(&$word, &$file) {
  $k=0;
  $fp=fopen($file,"r");
  while (!feof($fp)) {
  $g=fgets($fp);
  while (stristr($word,$g) !== false) {
  $k=$k+1;
  $g=substr(stristr($word,$g),strlen($word)+1,strlen(g)-strlen(stristr($word,$g)));
  }
  }
  fclose($fp);
  return $k;
}
 
echo '<p>Количество повторений слова "разработка" в файле content1.txt: </p>'
.str_count("разработка",'content.txt');
?>
Как-то так. Если что - подправь.
0
monahoff
38 / 38 / 23
Регистрация: 26.01.2012
Сообщений: 302
09.02.2012, 23:19  [ТС] 7
Разумно)) Понял, еще раз спасибо!!
0
09.02.2012, 23:19
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.02.2012, 23:19

Как сделать ссылки только по моему сайту
Добрый день, имеется такая задача, нужно реализовать переход только по моему сайту. У меня есть...

Организовать поиск по сайту PHP&MySQL. Как просклонять слово?
Пример: При запросе &quot;медведь&quot;, пользователю надо выдать &quot;медведи&quot;,...

Как сделать функцию "Обязательный клик по сайту рекламодателя"?
Всем привет. Проблема вот в чем: В одном буксе видел такую функцию в серфинге, как доп клики на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.