0

文字列をスピンし、この関数を使用したmysqlテーブルから単語を置き換えるスピナー関数を作成しようとしています:

function mradef($text)
{
    global $db;
    $text = trim($text);
    $word = explode(" ", $text);
    $finalword='';
    foreach($word as $words) {
        $q = $db->query("select simple_id,name,synonym from simple where name='$words'");
        while($t = $db->fetch($q)){
            $finalword .= str_replace($words, 
                                  '<b>' . $t['synonym'] . '( ' . $words . ' )</b>', 
                                  ' ' . $text . ' ');

            return $finalword;
        }
    }
}

$amer = 'hello my name is Amer and I am a php programmer';
echo mradef($amer);

そして、私のテーブル(シンプル)にはこれらの行が含まれています

name       | synonym 
--------------
hello      | hi
programmer | web programmer

しかし、コードは機能していません。あなたがする必要があるのは、そのコードが文字列内の単語をデータベースからの (シノニム) に変更することだけです。

4

1 に答える 1

1

この行:

return $finalword;

foreachループの外にある必要があります。それはあなたのエラーです。

また、データベースで見つからないすべての単語は、に追加されません$finalword。それらを追加するには、条件を追加し (mysql の結果がない場合)、単語を変更せずに追加します。

于 2012-12-22T11:34:41.637 に答える