我正在制作将发布到我的网站上的电子书。我想模仿OSX聚光灯功能,其中有人可以使用我的固定搜索栏并输入文本,然后在页面上为它们突出显示。我试图使用Sphider,但没有这样的运气得到这个结果。在PHP中创建“聚光灯搜索”
•找到this类似的线程,但不完全是我在找的东西。
我正在制作将发布到我的网站上的电子书。我想模仿OSX聚光灯功能,其中有人可以使用我的固定搜索栏并输入文本,然后在页面上为它们突出显示。我试图使用Sphider,但没有这样的运气得到这个结果。在PHP中创建“聚光灯搜索”
•找到this类似的线程,但不完全是我在找的东西。
您可以使用字符串替换来环绕所有需要用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标签,所以如果你要使用像我建议的字符串替换功能。考虑不允许搜索和替换标签。在这种情况下可能需要正则表达式替换
是的,这是我正在寻找。我知道我需要一段突出显示的文字,但对如何完成这项工作并没有任何想法。在你看来,PHP是完成这个最好的语言吗? – ryanSrich 2012-03-28 03:25:13
我假定Php是因为那是语言的标签。您可以使用任何服务器端语言来实现此任务甚至客户端JavaScript。取决于你的网站编程。如果你需要帮助评估你的情况,请给我发电子邮件。干杯:) – 2012-03-29 04:42:12
所以,你想让别人为你写吗? – 2012-03-28 02:55:39
不是。只是一些帮助和提示。感谢您的评论。 – ryanSrich 2012-03-28 03:04:33