在PHP中创建“聚光灯搜索”

时间:2012-03-28 02:52:42

标签: php jquery ajax search spotlight

我正在制作一本将发布到我网站的电子书。我想模仿OSX聚光灯功能,有人可以使用我的固定搜索栏并输入文本然后在页面上突出显示它们。我试图使用Sphider但是没有这么好的运气来获得这个结果。

•找到this类似的帖子,但不完全是我正在寻找的。

1 个答案:

答案 0 :(得分:1)

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

<?php

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

然后是一些CSS

.highlighted {
  background-color:yellow;
}

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

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

这当然是理论上的...基于你的问题。

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