如何只从php中的字符串中突出显示字符?

时间:2015-10-13 05:47:36

标签: php

我有一个字符串和一些单词,我想要突出显示那些与字符串匹配的单词,而且我只想打印那些突出显示的单词,如果苹果匹配,那么只有苹果必须打印。

$string = "apple computer";

$keyword = "apple,orange,bike";

我使用以下函数突出显示字符串中的特定字符。

$str = preg_replace("/($keyword)/i","<span style='color:orange;'>$0</span>",$string);

问题是我只想显示突出显示的那些字符,目前它显示所有字符。

3 个答案:

答案 0 :(得分:2)

这可以满足您的需求。

$string = " apple computer orange";
$keywords = "apple, orange";

$exp_kwd = explode(",", $keywords);

$res = "<span style='color:orange;'>";

foreach($exp_kwd as $val){

    if(strpos($string, trim($val))){

       $res .=  $val." ";
    }
}
$res = $res."</span>";

echo $res;

答案 1 :(得分:2)

希望这也会起作用

$string = "apple computer orange tested";
$keyword = "apple,orange,bike,tested";

$pattern="/".str_replace(",","/,/",$keyword)."/";
$pattern=explode(",",$pattern);

$string=explode(" ",$string);
$keyword =explode(",",$keyword);

$string=implode(",",(preg_filter($pattern, $keyword, $string)));
echo $string="<span style='color:orange;'>$string</span>";

答案 2 :(得分:0)

$string = "Im On  #Here";
$keyword = "#";

$var = strrchr($string,$keyword);
if(empty($var))
{
    echo 'No Occerunce Found';
}
else
{
    echo '<span style="color:orange;">'.$var.'</span>';
}

phpfiddle Preview