Создание «поискового центра» в PHP - PullRequest
0 голосов
/ 28 марта 2012

Я работаю над электронной книгой, которая будет опубликована на моем сайте. Я хочу имитировать функцию прожектора OSX, где кто-то может использовать мою постоянную панель поиска и вводить текст, который затем выделяется для них на странице. Я пытался использовать Sphider, но мне не повезло с этим результатом.

• найдено эта похожая тема, но не совсем то, что я ищу.

1 Ответ

1 голос
/ 28 марта 2012

Вы можете использовать замену строки, чтобы окружить весь текст, который должен быть выделен тегом span.Затем создайте класс CSS для этого тега span.

<?php

$searchString = $_POST['search'];
$EBOOK = str_replace($searchString, "<span class='highlighted'>$searchString</span>", $EBOOK);

Затем немного CSS

.highlighted {
  background-color:yellow;
}

Чтобы перейти к следующему шагу, вы можете использовать JavaScript для прокрутки веб-браузера пользователя допервое местоположение span.highlighted.

Примечание. Я бы не использовал регулярное выражение для замены значения строки поиска (т. е. preg_replace), поскольку входные данные для поиска пользователя могут содержать специальные символы, используемые регулярным выражением, которые, возможно, необходимо экранировать.

Это все теоретически, конечно ... на основе вашего вопроса.

Редактировать: просто подумав, контент Ebook будет содержать HTML-теги, так что если вы будете использовать функцию замены строкикак я и предложил.Примите во внимание, что теги нельзя искать и заменять.В этом случае может потребоваться замена регулярного выражения

...