2011-10-30 39 views
1

當我的用戶搜索我的網站上的內容我贊同$title, $content其中類似$keyword整理搜索結果

搜索功能正確實現的作品,但,因爲在我的數據庫中的每個內容字段包含文本的不少段落當結果顯示在頁面上時,用戶很難閱讀。

我想讓用戶搜索輸入的關鍵字,然後在顯示的結果中,在關鍵字前後加上一些字母的文字並突出顯示它?

我讀過strpos和strstr應該這樣做。所以我的問題是....

用下面的代碼:

<?php 

foreach ($searchcontent ->result() as $row) 
{ 
echo $title 
echo $content 
} 
?> 

我怎樣才能突出關鍵字,第一關鍵字的每個側面顯示字符數的發現?

+1

谷歌的'PHP亮點搜索keqword'將幫助你,我相信。 –

回答

2

你可以做這樣的事情:

在PHP腳本

$keyword = THESEARCHEDKEYWORD; 
$pattern = "/([^a-z])$keyword([^a-z])/i"; 
$highlight = '<span class="highlight">' . $keyword . '</span>'; 
foreach ($searchcontent->result() as $row) 
{ 
    $title = preg_replace($pattern, "$1$highlight$2", $title); 
    $content = preg_replace($pattern, "$1$highlight$2", $content); 
    echo $title; 
    echo $content; 
} 

然後在CSS添加此規則

.highlight 
{ 
    font-weight: bold; 
    background-color: yellow; 
}