while統制迴圈次數出錯【help】

來源:互聯網
上載者:User
while控制迴圈次數出錯【help】
上代碼...下面代碼有點問題.本來想用$i控制輸出次數.但是替換一次就break;
想了半天無解.
求協助...謝謝...

PHP code
//替換關鍵字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],''.$r[keyname].'',$newstext):preg_replace('/'.$r[keyname].'/',''.$r[keyname].'',$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 返回的字串才是你最終想要的目的吧.
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.