上代码...下面代码有点问题.本来想用$i控制输出次数.但是替换一次就break;
想了半天无解.
求帮助...谢谢...
//替换关键字
function ReplaceKey($newstext){
global $empire,$dbtbpre,$public_r;
if(empty($newstext))
{return $newstext;}
$sql=$empire->query("select keyname,keyurl from {$dbtbpre}enewskey");
$i=0;
while($r=$empire->fetch($sql))
{
if($i < 5)
{
$newstext=empty($public_r[repkeynum])?str_replace($r[keyname],'<a href='.$r[keyurl].' target=_blank >'.$r[keyname].'</a>',$newstext):preg_replace('/'.$r[keyname].'/','<a href='.$r[keyurl].' target=_blank >'.$r[keyname].'</a>',$newstext,$public_r[repkeynum]);
}
else
break;
$i++;
}
return $newstext;
}
想了半天无解.
求帮助...谢谢...
//替换关键字
function ReplaceKey($newstext){
global $empire,$dbtbpre,$public_r;
if(empty($newstext))
{return $newstext;}
$sql=$empire->query("select keyname,keyurl from {$dbtbpre}enewskey");
$i=0;
while($r=$empire->fetch($sql))
{
if($i < 5)
{
$newstext=empty($public_r[repkeynum])?str_replace($r[keyname],'<a href='.$r[keyurl].' target=_blank >'.$r[keyname].'</a>',$newstext):preg_replace('/'.$r[keyname].'/','<a href='.$r[keyurl].' target=_blank >'.$r[keyname].'</a>',$newstext,$public_r[repkeynum]);
}
else
break;
$i++;
}
return $newstext;
}
$public_r[repkeynum]的值在函数运行期间并没有改变,那么就一定不会执行else分支
感觉逻辑没错....我也承认我php不熟....c#折腾的多些.
$newstext=empty($public_r[repkeynum])?str_replace($r[keyname],'<a href='.$r[keyurl].' target=_blank >'.$r[keyname].'</a>',$newstext):preg_replace('/'.$r[keyname].'/','<a href='.$r[keyurl].' target=_blank >'.$r[keyname].'</a>',$newstext,$public_r[repkeynum]);
这个部分.所以似乎应该修改成 $newstext.=xxxx 返回的字符串才是你最终想要的目的吧.