0

我正在编写一本将发布到我的网站的电子书。我想模仿 OSX 的 Spotlight 功能,有人可以使用我的固定搜索栏并输入文本,然后在页面上为他们突出显示。我试图使用 Sphider,但在得到这个结果时没有这样的运气。

•找到这个类似的线程,但不完全是我正在寻找的。

4

1 回答 1

1

您可以使用字符串替换来包围所有需要用 span 标签突出显示的文本。然后为该 span 标签创建一个 CSS 类。

<?php

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

然后是一些 CSS

.highlighted {
  background-color:yellow;
}

要进行下一步,您可以使用 javascript 将用户的 Web 浏览器滚动到 span.highlighted 的第一个位置。

注意我不会使用正则表达式来替换搜索字符串值(即 preg_replace),因为用户的搜索输入可能包含正则表达式使用的特殊字符,这些字符可能需要转义。

当然,这都是理论上的……根据您的问题。

编辑:只是想到了一些东西,电子书内容将包含 HTML 标签,所以如果你要使用我建议的字符串替换功能。考虑到不允许标签被搜索和替换。在这种情况下可能需要正则表达式替换

于 2012-03-28T03:07:32.697 回答