请注意大小写:
$a = Array ('JiL不是吧');
$b = array("<a href='aa'><u>JiL不是吧</u></a>");
$body = "JiL不是吧 其它内容Jil不是吧JIl不是吧 JiL不是吧 其它内容 JIL不是吧JiL不是吧 Jil不是吧 JiL不是吧 JIL不是吧";我需要将$body中的 JiL不是吧 替换为 <a href='aa'><u>JiL不是吧</u></a> 保证$body中的文字不变 并能控制替换的数量 比如 控制2个链接 替换$body后的内容为:<a href='aa'>JiL不是吧</a>其它内容 <a href='aa'>Jil不是吧</a>JIl不是吧 JiL不是吧其它内容 JIL不是吧JiL不是吧 Jil不是吧 JiL不是吧 JIL不是吧 试了preg_replace和str_replace没能做出来
$a = Array ('JiL不是吧');
$b = array("<a href='aa'><u>JiL不是吧</u></a>");
$body = "JiL不是吧 其它内容Jil不是吧JIl不是吧 JiL不是吧 其它内容 JIL不是吧JiL不是吧 Jil不是吧 JiL不是吧 JIL不是吧";我需要将$body中的 JiL不是吧 替换为 <a href='aa'><u>JiL不是吧</u></a> 保证$body中的文字不变 并能控制替换的数量 比如 控制2个链接 替换$body后的内容为:<a href='aa'>JiL不是吧</a>其它内容 <a href='aa'>Jil不是吧</a>JIl不是吧 JiL不是吧其它内容 JIL不是吧JiL不是吧 Jil不是吧 JiL不是吧 JIL不是吧 试了preg_replace和str_replace没能做出来
$a = array ('JiL不是吧');
$b = array("<a href='aa'><u>JiL不是吧</u></a>");
$body = "JiL不是吧 其它内容Jil不是吧JIl不是吧 JiL不是吧 其它内容 JIL不是吧JiL不是吧 Jil不是吧 JiL不是吧 JIL不是吧";
function newStrReplace($m)
{
static $num = NULL;
if($num++ < $GLOBALS['count'])
{
return $GLOBALS['b'][0];
}
else
{
return $m[0];
}
}
$count = 1;//替换数量
echo preg_replace_callback('#' . $a[0] . '#', 'newStrReplace', $body);
<a href='aa'><u>JiL不是吧</u></a> 其它内容Jil不是吧JIl不是吧 <a href='aa'><u>JiL不是吧</u></a> 其它内容 JIL不是吧JiL不是吧 Jil不是吧 JiL不是吧 JIL不是吧Jil不是吧没有替换哦 不管大小写都替换 结果应该是这样才对:
<a href='aa'><u>JiL不是吧</u></a> 其它内容<a href='aa'><u>Jil不是吧</u></a>JIl不是吧 JiL不是吧 其它内容 JIL不是吧JiL不是吧 Jil不是吧 JiL不是吧 JIL不是吧
传进函数的变量为:$words = Array ('JiL不是吧','aoc显示器') ;
$result = array("<a href='aa'><u>JiL不是吧</u></a>","<a href='bb'><u>aoc显示器</u></a>
");
$string = "JiL不是吧 Jil不是吧JIl不是吧 JiL不是吧 JIL不是吧
aoc显示器 aoC显示器 AoC显示器AOC显示器aOC显示器
一键更新网站
huasuo老鼠 HuaSuo老鼠
欢迎使用DEDECMS 欢迎使用DeDECMS 欢迎使用dedecms
dnf免费外挂 dNf免费外挂 DNf免费外挂 DNF免费外挂JiL不是吧 Jil不是吧 JiL不是吧 JIL不是吧
aoc显示器 aoC显示器 AoC显示器AOC显示器aOC显示器
一键更新网站"; /**
+----------------------------------------------------------
* 函数 getbody
+----------------------------------------------------------
* @access public
+----------------------------------------------------------
* @param string 文档整篇内容
* @param $words 关键字
* @param $result keysword表关键字带连接
* @param $pre 分隔符
+----------------------------------------------------------
* @return string
+----------------------------------------------------------
*/
function getbody($string, $words, $result, $pre)
{
//正则查找关键字在整篇文档中出现次数不区分大小写
global $cfg_replace_num; //int型 比如2
$sys_num = $cfg_replace_num;//临时数量 后台设置的关键字
foreach ($words as $k=>$v)
{
$url = "";//重置初始化
$p = preg_match_all('/'.$v.'/i',$string,$str,PREG_SET_ORDER);//提取关键字
preg_match_all('/<a\shref=\'(.*)\'>/',$result[$k],$url); //替换关键字连接
$url = $url[1][0];
if (count($str)<$sys_num) //如果关键字小于系统设置的数量则全部替换
{
$num = count($str);
}
else if (intval($sys_num)==0) //后台关键字数量为0 则全部替换
{
$num = count($str);
}
else
{
$num = $sys_num;
}
for ($i=0;$i<$num;$i++)
{
$name = $str[$i][0];
//就是这里有问题 两种方法都不行
//$string = str_replace($str[$i][0],"<a href='$url'>$name</a>",$string); //加链接区分大小写
$string = preg_replace('/'.$str[$i][0].'/',"<a href='$url'>$name</a>",$string); //加链接区分大小写
$name = "";
} }
return $string;
}
if($num++ < $GLOBALS['count'])
{
return "<a href='aa'><u>" . $m[0] . "</u></a>";//这一句改一下
}
需求一步说清楚,,,你如果干这一行,仔细想想,应该也能改出来
<?php
$body = "JiL不是吧 其它内容Jil不是吧JIl不是吧 JiL不是吧 其它ffff内容 JIL不是ffff吧JiL不是吧 Jil不是吧 JiL不是吧 JIL不是吧";
echo preg_replace("#(JiL不是吧)#i","<a href='aa'><u>\\1</u></a>",$body,2);
?>