ホームページ > バックエンド開発 > PHPチュートリアル > ループ数の制御中にエラーが発生しました [ヘルプ]

ループ数の制御中にエラーが発生しました [ヘルプ]

WBOY
リリース: 2016-06-13 13:26:23
オリジナル
1077 人が閲覧しました

while ループの数の制御にエラーがあります [ヘルプ]
上のコード... 以下のコードに問題があります。当初は $i を使用して出力数を制御したかったのですが、一度置き換えた後です。 、壊れます。
長い間考えていますが、解決策がありません。
助けてください...ありがとう...

PHP コード
<!--

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 < 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;
}

ログイン後にコピー


------解決策------------------
クエリが正しいことを確認できますか結果は 5 より大きい必要がありますか?
------解決策------------------
個人的には、デバッグに何か問題があると思います、結果は正しくありません。一度だけ置換されたというわけではありません。関数の実行中に
$public_r[repkeynum] の値は変更されないため、else ブランチは確実に実行されません。
------解決策----------------------
コード制御プロセスは問題ないはずですが、問題


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


この部分。

したがって、$newstext.=xxxx に変更する必要があるようです。返される文字列は、
になります。
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート