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 回答