2010-12-22 225 views
0

可以說添加HTML標籤一個變量字符串

$keyword = obama 
$result = "US President Barack Obama on Wednesday signed a landmark law" 

我如何作出這樣每次$關鍵字裏面也出現$導致它改變了$關鍵字在裏面<strong></strong>標籤?

str_replace不起作用,因爲如果關鍵字處於lowercaps並且結果obama在高帽中,它將不會替換它。

感謝

編輯:找到了答案,萬一有人需要它這是代碼

$myWords = array($keyword); 
function boldText($arrWords, $strSubject) 
{ 
    if (!is_array($arrWords)) return; 
    foreach ($arrWords as $strWord) 
    { 
      $strSubject = preg_replace('@(' . preg_quote($strWord, '@') . ')@i', "<b>\\1</b>", $strSubject); 
    } 
    return $strSubject; 
} 
+0

當心如果源數據可能包含任何HTML或確實網址等使用這種方法(如:單詞「奧巴馬」會發生什麼事是在URL) – 2010-12-22 18:47:04

+0

我走$只是一個不包含任何html的簡短描述的字符串的結果都不是一個url。事情是我需要把它粗體,即使字符串已蓋帽字母 – Peibol 2010-12-22 19:04:38

回答

1
str_replace (ucfirst($keyword), "<strong>" . $keyword . "</strong">, $result); 

,或者使用與不區分大小寫的正則表達式。

+0

str_replace不起作用,因爲如果關鍵字在lowercaps和結果obama是在高帽,它wouldnt取代它。 – Peibol 2010-12-22 18:46:16

0

您可以使用str_replace函數:

str_replace (mixed $keyword, mixed '<strong>' . $keyword . '</strong>', mixed $result) 

這將替換$關鍵字自身,通過<strong>標籤包圍。

0

我敢肯定,可能有其他方法,但我會使用preg_replace()。喜歡的東西:

$result = preg_replace($keyword , "<strong>$keyword</strong>" , $result); 
相關問題