0
  1. 我正在从数据库中提取提到“健身”一词的个人资料,如下所示:

    $result = mysql_query("SELECT profile FROM ".$table." WHERE profile LIKE ('fitness')");
    
  2. 我正在对$profile变量进行基本检索并回显它。

    while($slice = mysql_fetch_assoc($result)) {
        $profile = $slice['profile'];
        echo $profile;
    }
    

我想要的是一种在文本中搜索$profile“健身”一词并使用 CSS 突出显示找到的词的方法。

有什么想法吗?

更新:

Ty 非常,我还有一个问题。

在 sql 查询中,我将拥有:

$result = mysql_query("SELECT profile FROM ".$table." WHERE $profile_rule");

$profile_rule = 'profile LIKE ('fitness') AND profile LIKE ('pets')';

有没有办法s**trip $profile_rule** 并且只得到fitness 和pets 两个词?也许剥离没有被 '' 包裹的所有东西?

4

2 回答 2

2
function highlightWord($word, $text){
    return str_replace($word, '<span class="highlighted">' . $word . '</span>', $text);
}

$profile = highlightWord('fitness', $profile);

编辑:根据您的更新,看看IN()运营商:

$result = mysql_query("SELECT profile FROM $table WHERE profile IN ('fitness','pets')");

编辑2:我想我误解了你的问题,虽然我仍然建议编辑1。如果你只想从那个字符串中获取单词,请使用一些简单的正则表达式fitnesspets$profile_rule

preg_match_all("|[a-z]+(?=\'\)|","profile LIKE ('fitness') AND profile LIKE ('pets')", $profiles);
var_dump($profiles); // array(1) { [0]=> array(2) { [0]=> string(7) "fitness" [1]=> string(4) "pets" } }
于 2012-05-26T00:06:00.883 回答
0
$profile = str_replace("fitness", "<span style=\"color:red\">fitness</span>",
           $slice["profile"]);
于 2012-05-26T00:02:31.790 回答