【问题标题】:Creating a "spotlight search" in PHP在 PHP 中创建“聚光灯搜索”
【发布时间】:2012-04-11 15:11:46
【问题描述】:

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

•找到this 类似的线程,但不是我要找的。

【问题讨论】:

  • 那么,你想让别人给你写吗?
  • 不。只是一些帮助和提示。感谢 cmets。

标签: php jquery ajax search spotlight


【解决方案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 标记,因此如果您要使用我建议的字符串替换功能。考虑不允许标签被搜索和替换。在这种情况下可能需要正则表达式替换

【讨论】:

  • 是的,这就是我要找的。我知道我需要为突出显示的文本设置一个跨度,但对如何实现它并没有任何想法。在您看来,PHP 是实现这一目标的最佳语言吗?
  • 我假设是 Php,因为那是标记的语言。您可以使用任何服务器端语言来完成此任务,甚至可以使用客户端 JavaScript。还取决于您的网站的编程内容。如果您需要帮助评估您的情况,请给我发电子邮件。干杯:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-03-09
  • 1970-01-01
  • 2021-11-24
  • 1970-01-01
  • 1970-01-01
  • 2012-04-29
  • 1970-01-01
相关资源
最近更新 更多