Home >Backend Development >PHP Tutorial > while统制循环次数出错【help】

while统制循环次数出错【help】

WBOY
WBOYOriginal
2016-06-13 13:26:231072browse

while控制循环次数出错【help】
上代码...下面代码有点问题.本来想用$i控制输出次数.但是替换一次就break;
想了半天无解.
求帮助...谢谢...

PHP code
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
//替换关键字
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 '.$r[keyname].'',$newstext):preg_replace('/'.$r[keyname].'/','<a href=".%24r%5Bkeyurl%5D." target="_blank">'.$r[keyname].'</a>',$newstext,$public_r[repkeynum]);
        }
        else  
            break;
        $i++;
    }
    return $newstext;
}



------解决方案--------------------
能确认查询结果就一定大于5吗
------解决方案--------------------
个人认为你的调试有问题,结果并不是你说的那样只替换了一次
$public_r[repkeynum]的值在函数运行期间并没有改变,那么就一定不会执行else分支
------解决方案--------------------
代码控制过程应该没问题,有问题的应该是在


$newstext=empty($public_r[repkeynum])?str_replace($r[keyname],''.$r[keyname].'',$newstext):preg_replace('/'.$r[keyname].'/',''.$r[keyname].'',$newstext,$public_r[repkeynum]);


这个部分.

所以似乎应该修改成 $newstext.=xxxx 返回的字符串才是你最终想要的目的吧.
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn