2014-07-11 157 views
0

我想在用戶鍵入當前關鍵字時使任何關鍵字變爲粗體。突出顯示搜索結果中的關鍵字php

我有這個代碼,它工作正常。

for($k=$no_words; $k>0 ;$k--) { 

      $w=trim($search_array[$k-1]); 
      if($w!='') 
      { 
       $result[$i]['title'] = preg_replace('/(' . preg_quote($search_array[$k-1], '/') . ')/siU', '<b>\\1</b>', $result[$i]['title']); 
       $result[$i]['description'] = preg_replace('/(' . preg_quote($search_array[$k-1], '/') . ')/siU', '<b>\\1</b>', $result[$i]['description']); 
      } 
     } 

我的問題是:

我有這樣的關鍵字:這是我的關鍵字

當我鍵入:「這是我的關鍵字」我得到這樣的結果:「這是我的關鍵字

但是當我輸入:」這是關鍵字「我得到這個結果:」這是我的關鍵字「沒有在結果中的單詞是粗體。

我做錯了什麼?

+0

沒有子「這是關鍵詞」字符串「這是_my_關鍵字」 –

+0

,我需要在此代碼做什麼呢? – Olympus

+0

'$ search_array'是什麼? –

回答

0

我想你需要以下:

$search_array = array_unique(explode(' ', $search)); 
foreach ($search_array as $k => $v) 
{ 
    $w = trim($v); 
    if ($w) 
    { 
     $result[$i]['title'] = preg_replace('/(' . preg_quote($w, '/') . ')/siU', '<b>\\1</b>', $result[$i]['title']); 
     $result[$i]['description'] = preg_replace('/(' . preg_quote($w, '/') . ')/siU', '<b>\\1</b>', $result[$i]['description']); 
    } 
} 
+1

我的上帝你是PHP的神是workingggggg – Olympus

+0

Lashane如果我鍵入這是我的關鍵字與空格它不會採取任何結果你現在怎麼修復? – Olympus

+0

my__keyword中的兩個空格 – Olympus

相關問題