我正在编写一本将发布到我的网站的电子书。我想模仿 OSX 的 Spotlight 功能,有人可以使用我的固定搜索栏并输入文本,然后在页面上为他们突出显示。我试图使用 Sphider,但在得到这个结果时没有这样的运气。
•找到这个类似的线程,但不完全是我正在寻找的。
您可以使用字符串替换来包围所有需要用 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 标签,所以如果你要使用我建议的字符串替换功能。考虑到不允许标签被搜索和替换。在这种情况下可能需要正则表达式替换