php preg_replace 本帖最后由 sujunlin_1987 于 2010-03-19 20:43:51 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <?while($rs=mysql_fetch_array($result)){$NerworkName=$rs["NerworkName"];if (is_array($search_array)){ $search_array=implode("|",$search_array);}$NerworkName=preg_replace("/($search_array)/i","<font style='color:#aa1234'>\\1</font>",$NerworkName);?> <div id="x_<?=$rs["ID"]?>" class="list_main"> <div class="list"><?=$NerworkName?></div> </div> <?}?> $NerworkName=preg_replace("/($search_array[$i])/i","<font style='color:#aa1234'>\\1</font>",$NerworkName);这句有问题! 不知道怎么改如果我搜索的是 "1 2"内容会错乱 原因是'color:#aa1234'如果输入"1"或不包含aa1234的字母或数字 就没问题!数据库数据:123123搜索"1" 结果为<font style='color:#aa1234'>1</font>23<font style='color:#aa1234'>1</font>23搜索"1 2" 结果为234'>1<font style='color:#aa1234'>2</font>3234'>1<font style='color:#aa1234'>2</font>3 $NerworkName=preg_replace("/($search_array[$i])/i","<font style='color:#aa1234'>\\1</font>",$NerworkName);数据库数据:789789搜索"7 8 9" 结果正确数据库数据:123123搜索"1 2 3" 结果错误 试了和我原先效果一样!错误应该是在这句 $NerworkName=preg_replace("/($search_array[$i])/i","<font style='color:#aa1234'>\\1</font>",$NerworkName); <?$NerworkName="1245367890abcdefghi";$search_array=array(1,2,3);if (is_array($search_array)){ $search_array=implode("|",$search_array);}$NerworkName=preg_replace("/($search_array)/i","<font style='color:#aa1234'>\\1</font>",$NerworkName);echo $NerworkName."<br>";//1245367890abcdefghi 1、2、3都是有色的echo htmlspecialchars($NerworkName);//<font style='color:#aa1234'>1</font><font style='color:#aa1234'>2</font>45<font style='color:#aa1234'>3</font>67890abcdefghi?> 我也是碰到类似问题;date='$cur_user=33011011'; echo $date.'<br />'; echo $dat=preg_replace("/^[1-9]{2}[0-1][0-9]{3}[1][1-3]$/","33000111",$date);这个替换不了 关于PHP取COOKIE的问题,请求帮助! 有人用过mysql 存储图片数据,其后的mysql维护如何解决? 更改中文内容程序 odbtp_connect函数需要安装什么模块?如何安装 PHP 怎么防盗链接打开页面? PHP 输出插入数据库的结果问题 请问这个功能如何实现? php 生成静态文件,在本地是好的.为何放到服务器就出错下面错误... 急征成都地区网络开发高手!! 取本周内数据有几种写法,谢谢 在数据库里记录时间,是用datatime好还是用时间戳好? 关于mysql的自动增加问题
while($rs=mysql_fetch_array($result)){
$NerworkName=$rs["NerworkName"];
if (is_array($search_array)){
$search_array=implode("|",$search_array);
}
$NerworkName=preg_replace("/($search_array)/i","<font style='color:#aa1234'>\\1</font>",$NerworkName);
?>
<div id="x_<?=$rs["ID"]?>" class="list_main">
<div class="list"><?=$NerworkName?></div>
</div>
<?
}
?>
如果我搜索的是 "1 2"内容会错乱 原因是'color:#aa1234'
如果输入"1"或不包含aa1234的字母或数字 就没问题!数据库数据:123123
搜索"1" 结果为<font style='color:#aa1234'>1</font>23<font style='color:#aa1234'>1</font>23
搜索"1 2" 结果为234'>1<font style='color:#aa1234'>2</font>3234'>1<font style='color:#aa1234'>2</font>3
搜索"7 8 9" 结果正确数据库数据:123123
搜索"1 2 3" 结果错误
试了和我原先效果一样!
错误应该是在这句
$NerworkName=preg_replace("/($search_array[$i])/i","<font style='color:#aa1234'>\\1</font>",$NerworkName);
<?
$NerworkName="1245367890abcdefghi";
$search_array=array(1,2,3);
if (is_array($search_array)){
$search_array=implode("|",$search_array);
}
$NerworkName=preg_replace("/($search_array)/i","<font style='color:#aa1234'>\\1</font>",$NerworkName);
echo $NerworkName."<br>";//1245367890abcdefghi 1、2、3都是有色的
echo htmlspecialchars($NerworkName);//<font style='color:#aa1234'>1</font><font style='color:#aa1234'>2</font>45<font style='color:#aa1234'>3</font>67890abcdefghi
?>
echo $date.'<br />';
echo $dat=preg_replace("/^[1-9]{2}[0-1][0-9]{3}[1][1-3]$/","33000111",$date);
这个替换不了