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 返回的字串才是你最終想要的目的吧.