2012-03-28 72 views
0

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

•找到this类似的线程,但不完全是我在找的东西。

+2

所以,你想让别人为你写吗? – 2012-03-28 02:55:39

+0

不是。只是一些帮助和提示。感谢您的评论。 – ryanSrich 2012-03-28 03:04:33

回答

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标签,所以如果你要使用像我建议的字符串替换功能。考虑不允许搜索和替换标签。在这种情况下可能需要正则表达式替换

+0

是的,这是我正在寻找。我知道我需要一段突出显示的文字,但对如何完成这项工作并没有任何想法。在你看来,PHP是完成这个最好的语言吗? – ryanSrich 2012-03-28 03:25:13

+0

我假定Php是因为那是语言的标签。您可以使用任何服务器端语言来实现此任务甚至客户端JavaScript。取决于你的网站编程。如果你需要帮助评估你的情况,请给我发电子邮件。干杯:) – 2012-03-29 04:42:12