|
|
|
| Данная тема поднималось уже давно
[url]/forum/read.php?id_forum=1&id_theme=10692[/url]
Ну так и не была раскрыта.. Хотелось бы узнать, как сделать, чтобы:
нажатием одной кнопки на странице, находились слова в тексте, которые ранее были забиты в базу. Грубо говоря, у меня сайт и в админке хочу сделать кнопку, что бы нажав ее, в загружаемом тексте выдилялись ключевые слова. Заранее благодарю за помощь и объяснения | |
|
|
|
|
|
|
|
для: Basil666
(18.11.2011 в 11:39)
| | Обычно их передают GET-параметром, а после ищут и осуществляют замену на страницу, в самом простейшем случае при помощи str_replace(). | |
|
|
|
|
|
|
|
для: cheops
(18.11.2011 в 12:42)
| | ну а риализовать как? ведь там файл с так называемой базой слов должен быть и что бы из него он их в тексте и указывал | |
|
|
|
|
|
|
|
для: Basil666
(18.11.2011 в 14:09)
| | А какова исходная задача? Вы хотите подсвечивать заранее заданные слова (например, фамилии знаковых людей), или это будут слова из поиска, которые вводит пользователь? | |
|
|
|
|
|
|
|
для: cheops
(18.11.2011 в 14:14)
| | база слов заранее забита в файл и когда загружаешь текст на страницу, они или тегом каким выделяются или подсветкой | |
|
|
|
|
|
|
|
для: Basil666
(18.11.2011 в 16:51)
| | Дело не хитрое, обычно такой файл читают при помощи функции file(), которая преобразует содержимое в массив, а затем используют этот массив в функции str_replace() или проходятся по нему циклом. Только лучше очищать ключевые слова от пробельных символов при помощи trim(), дело в том, что file() ориентируется на UNIX-перевод строк \n, и зачастую оставляет \r от Windows-перевода строк \r\n. | |
|
|
|
|
|
|
|
для: cheops
(18.11.2011 в 17:23)
| | Благодарю за пояснение, а как кодом это выглядет, сколько не ковырял, ничего толкового не получается... | |
|
|
|
|
|
|
|
для: Basil666
(21.11.2011 в 12:44)
| | Можно начать отталкиваться от следующего скрипта
<?php
// Открываем файл
$lines = file("base.txt");
// Удаляем лишние пробелы
$lines = array_map("trim", $lines);
// Выводим дамп массива
echo "<pre>";
print_r($lines);
echo "</pre>";
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(21.11.2011 в 16:51)
| | ага, сейчас поковыряю | |
|
|
|
|
|
|
|
для: cheops
(21.11.2011 в 16: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 - выводимый на страницу текст. У меня же нет ваших баз данных и ключевых слов, поэтому я могу только на словах и на коротких примерах показать путь движения к конечному приложению. Если, что-то не понятно или не клеется - спрашивайте, во всем разберемся. | |
|
|
|
|
|
|
|
для: cheops
(22.11.2011 в 11:51)
| | доковырял и все работает, вот в процессе понял что слова могут склоняться, тоесть надо задать поиск по корням, это как реализовать? | |
|
|
|
|
|
|
|
для: cheops
(22.11.2011 в 11:51)
| | может тут воспользоваться функцией strpos. Только как ее правильно применить? | |
|
|
|