PHP 中的高亮显示

发布于 2024-09-08 04:05:25 字数 736 浏览 2 评论 0原文

可能的重复:
突出显示 php/mysql 中的搜索结果

我正在使用查询进行搜索,在MSSQL中,像这样:

SELECT ctext FROM Table WHERE ctext like '%filter%'

然后,我想用php突出显示命中:

 function highlightme($str, $filter){
     $html = "<FONT style=".chr(34)."BACKGROUND-COLOR: yellow".
     chr(34).">".$filter."</FONT></P>";
     $buf = str_replace($filter,$html,$str);
     return $buf;
 }

但是,如果过滤器是'Hello',并且ctext包含'hello',SQL会带来它,但php不会突出显示它(我认为它与区分大小写有关) 并且,如果过滤器是“hellos”并且 ctext 包含“hello”,则 SQL 会带来它,但 php 也不会突出显示它。

我该如何解决这两件事?

Possible Duplicate:
highlighting search results in php/mysql

I am doing a search with a query, in MSSQL, like this:

SELECT ctext FROM Table WHERE ctext like '%filter%'

Then, I am wanting to highlight the hits with php:

 function highlightme($str, $filter){
     $html = "<FONT style=".chr(34)."BACKGROUND-COLOR: yellow".
     chr(34).">".$filter."</FONT></P>";
     $buf = str_replace($filter,$html,$str);
     return $buf;
 }

But, if the filter was 'Hello', and ctext contains 'hello', the SQL brings it, but php does not highlight it (I think it has to do with case sensitive)
And, If the filter was, 'hellos' and ctext contains 'hello', the SQL brings it, but php does not hightlight it either.

How can I solve this two things??

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

守不住的情 2024-09-15 04:05:25

首先,不应使用 chr(34),而应使用 "\""'"'。我建议不要使用 str_replace,而是使用 preg_replace,它允许您指定正则表达式模式。您可以使用 i 修饰符使模式不区分大小写。

示例:

CSS

.keyword {
    color: yellow;
}

PHP

$pattern = '#(hello)#i';
$replacement = '<span class="keyword">\1</span>';
$result = preg_replace($pattern, $replacement, $input);

还可以将模式和替换指定为数组。

First of all, instead of using chr(34) you should use "\"" or '"'. I suggest that instead of using str_replace you use preg_replace, which allows you to specify a regexp pattern. You can use the i modifier to make the pattern case-insensitive.

Example:

CSS

.keyword {
    color: yellow;
}

PHP

$pattern = '#(hello)#i';
$replacement = '<span class="keyword">\1</span>';
$result = preg_replace($pattern, $replacement, $input);

It is also possible to specify pattern and replacement as arrays.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文