2015-10-13 57 views
0

我有一個字符串和一些單詞,我想突出顯示那些與字符串匹配的單詞,並且我想只打印突出顯示的那些單詞,如果蘋果匹配,那麼只有蘋果必須打印。如何獲得只在PHP中的字符串突出顯示的字符?

$string = "apple computer"; 

$keyword = "apple,orange,bike"; 

我正在使用以下函數來突出顯示字符串中的特定字符。

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

問題是我想只顯示那些突出顯示的字符,目前它顯示所有的字符。

+0

您是否嘗試過我的答案? – 6339

回答

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; 
+0

是的,我已經試過了,我想只顯示突出顯示的字符不是其他,意思是如果蘋果突出顯示,那麼只有蘋果應該打印出來,而不是其他的 –

+0

你想刪除其他? – 6339

+0

是的,正好... –

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>"; 
+0

謝謝,但我不想顯示其他字未突出顯示,只想顯示突出顯示的字 –

+1

請提供示例輸出 – ManiMuthuPandi

+0

就好像「text」是突出顯示「文本」和「文本」應打印,而不是簡單地說,我只需要顯示那些突出顯示的字符 –

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

+0

如果我有多個關鍵字 –

相關問題