增加了“加亮和加颜色的效果”的效果时,就会出现乱码。

MILKZHOU 2009-09-28 05:17:11
自己做了一个多关键字搜索,
但发现一旦增加了“加亮和加颜色的效果”的效果时,就会出现乱码。(PHP代码部分,红色部分)
但不增加这个功能,搜索是正常的。
不知道里面有什么错误。
麻烦各位帮忙看一下。谢谢

引用
这是数据库部分
tid author authorid subject
001 adfa afd php400
002 bcd 2 php200
003 ddd 3 PHP站内搜索:多关键字、加亮显示
002 bcd 2 smarty配置(1)初步使用与认识
002 bcd 2 smarty配置(2)smarty的变量操作


这是php代码

<?php
include('mysql_class.php');

$db=new mysql('localhost','root','root','test','GBK');

if($_GET[key]){//有值的时候进行搜索
$k=explode(" ",$_GET[key]);
//以空格作为分隔点对$_GET[key]进行分隔
echo $sql="SELECT * FROM `bbs` WHERE SUBJECT LIKE '%$k[0]%' or SUBJECT LIKE '%$k[1]%'";
//or或者;and和
$q=$db->query($sql);
while($r=$db->fetch_array($q)){
//增加加亮和加颜色的效果
$r[subject]=preg_replace("/($k[0])/i","<font color=red><b>\\1</b></font>",$r[subject]);
$r[subject]=preg_replace("/($k[1])/i","<font color=red><b>\\1</b></font>",$r[subject]);

echo $r[subject]."<br>";
}
}
?>

<form action="" method="get">
关键字:
<input type="test" name="key" />
<input type="submit" value="全站搜索" name="sub"/>
</form>

...全文
122 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhuhuquan29 2009-10-04
  • 打赏
  • 举报
回复
所有关于字符编码的东西都转成GBK在试一下
zhuhuquan29 2009-10-04
  • 打赏
  • 举报
回复
mysql_query("SET NAMES GBK"); 一下
MILKZHOU 2009-09-29
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 alexdream 的回复:]
还不行吗
[/Quote]

搜索的结果不对,把所有的都搜出来啦。
MILKZHOU 2009-09-29
  • 打赏
  • 举报
回复
我不明白这几句是什么意思啊

$lColor = "JiAhAiDOng";
$rColor = "gnODiAhAiJ";

$r[subject] = str_replace($k[0],"$lColor".$k[0]."$rColor",$r[subject]);
AlexJia2046 2009-09-29
  • 打赏
  • 举报
回复
还不行吗
MILKZHOU 2009-09-29
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 alexdream 的回复:]
这样试一下呢
        $lColor = "JiAhAiDOng";
$rColor = "gnODiAhAiJ";

$r[subject] = str_replace($k[0],"$lColor".$k[0]."$rColor",$r[subject]);
   

   
$r[subject] = str_replace("$lColor"," <font color=\"#FF0000\">",$r[subject]);
$r[subject] = str_replace("$rColor"," </font>",$r[subject]);
[/Quote]

不太明白这个是怎么改的
ppq886 2009-09-29
  • 打赏
  • 举报
回复
简单的替换用 str_replace
AlexJia2046 2009-09-29
  • 打赏
  • 举报
回复
这样试一下呢
$lColor = "JiAhAiDOng";
$rColor = "gnODiAhAiJ";

$r[subject] = str_replace($k[0],"$lColor".$k[0]."$rColor",$r[subject]);



$r[subject] = str_replace("$lColor","<font color=\"#FF0000\">",$r[subject]);
$r[subject] = str_replace("$rColor","</font>",$r[subject]);
MILKZHOU 2009-09-29
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 alexdream 的回复:]
改下字符集,最好用GBK
[/Quote]

我是用GBK的吖,但还是不行。
MILKZHOU 2009-09-29
  • 打赏
  • 举报
回复
ddddddddddddddddddd
AlexJia2046 2009-09-28
  • 打赏
  • 举报
回复
改下字符集,最好用GBK

21,891

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧