Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Поиск по тексту страницы
 
 автор: Basil666   (18.11.2011 в 11:39)   письмо автору
 
 

Данная тема поднималось уже давно
[url]/forum/read.php?id_forum=1&id_theme=10692[/url]
Ну так и не была раскрыта.. Хотелось бы узнать, как сделать, чтобы:
нажатием одной кнопки на странице, находились слова в тексте, которые ранее были забиты в базу. Грубо говоря, у меня сайт и в админке хочу сделать кнопку, что бы нажав ее, в загружаемом тексте выдилялись ключевые слова. Заранее благодарю за помощь и объяснения

  Ответить  
 
 автор: cheops   (18.11.2011 в 12:42)   письмо автору
 
   для: Basil666   (18.11.2011 в 11:39)
 

Обычно их передают GET-параметром, а после ищут и осуществляют замену на страницу, в самом простейшем случае при помощи str_replace().

  Ответить  
 
 автор: Basil666   (18.11.2011 в 14:09)   письмо автору
 
   для: cheops   (18.11.2011 в 12:42)
 

ну а риализовать как? ведь там файл с так называемой базой слов должен быть и что бы из него он их в тексте и указывал

  Ответить  
 
 автор: cheops   (18.11.2011 в 14:14)   письмо автору
 
   для: Basil666   (18.11.2011 в 14:09)
 

А какова исходная задача? Вы хотите подсвечивать заранее заданные слова (например, фамилии знаковых людей), или это будут слова из поиска, которые вводит пользователь?

  Ответить  
 
 автор: Basil666   (18.11.2011 в 16:51)   письмо автору
 
   для: cheops   (18.11.2011 в 14:14)
 

база слов заранее забита в файл и когда загружаешь текст на страницу, они или тегом каким выделяются или подсветкой

  Ответить  
 
 автор: cheops   (18.11.2011 в 17:23)   письмо автору
 
   для: Basil666   (18.11.2011 в 16:51)
 

Дело не хитрое, обычно такой файл читают при помощи функции file(), которая преобразует содержимое в массив, а затем используют этот массив в функции str_replace() или проходятся по нему циклом. Только лучше очищать ключевые слова от пробельных символов при помощи trim(), дело в том, что file() ориентируется на UNIX-перевод строк \n, и зачастую оставляет \r от Windows-перевода строк \r\n.

  Ответить  
 
 автор: Basil666   (21.11.2011 в 12:44)   письмо автору
 
   для: cheops   (18.11.2011 в 17:23)
 

Благодарю за пояснение, а как кодом это выглядет, сколько не ковырял, ничего толкового не получается...

  Ответить  
 
 автор: cheops   (21.11.2011 в 16:51)   письмо автору
 
   для: Basil666   (21.11.2011 в 12:44)
 

Можно начать отталкиваться от следующего скрипта
<?php
  
// Открываем файл
  
$lines file("base.txt");
  
// Удаляем лишние пробелы
  
$lines array_map("trim"$lines);
  
// Выводим дамп массива
  
echo "<pre>";
  
print_r($lines);
  echo 
"</pre>";
?>

  Ответить  
 
 автор: Basil666   (21.11.2011 в 17:19)   письмо автору
 
   для: cheops   (21.11.2011 в 16:51)
 

ага, сейчас поковыряю

  Ответить  
 
 автор: Basil666   (22.11.2011 в 11:18)   письмо автору
 
   для: cheops   (21.11.2011 в 16:51)
 

Все конечно хорошо, но слова то не только выводить, наверное не поняли задачу... На странице текст и нажав на кнопку, из этого текста выделяются слова, которые забиты в базу. Тоесть мне в текстах надо искать поисковые слова для моего ресурса.

  Ответить  
 
 автор: cheops   (22.11.2011 в 11:51)   письмо автору
 
   для: Basil666   (22.11.2011 в 11:18)
 

Прекрасно понял, выше была демонстрация того, как можно получить массив ключевых слов из заранее заданного файла, теперь берите этот массив и в цикле осуществляйте подстановку... что-то вроде этого
<?php
  
for($i 0$i count($lines); $i++)
  {
    
$text str_replace($lines[$i], "<b style='color: red;'>".$lines[$i]."</b>"$text);
  }
?>
Где $text - выводимый на страницу текст. У меня же нет ваших баз данных и ключевых слов, поэтому я могу только на словах и на коротких примерах показать путь движения к конечному приложению. Если, что-то не понятно или не клеется - спрашивайте, во всем разберемся.

  Ответить  
 
 автор: basil666   (23.11.2011 в 18:55)   письмо автору
 
   для: cheops   (22.11.2011 в 11:51)
 

доковырял и все работает, вот в процессе понял что слова могут склоняться, тоесть надо задать поиск по корням, это как реализовать?

  Ответить  
 
 автор: Basil666   (28.11.2011 в 16:37)   письмо автору
 
   для: cheops   (22.11.2011 в 11:51)
 

может тут воспользоваться функцией strpos. Только как ее правильно применить?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования