09/10/2018, 23:38

Làm thế nào highlight keyword trong search result??

Mình muốn khi visitor search trong site mình, tất cả kết quả có chứa keyword đều được highlight giống như trang http://java.sun.com/. Các bạn hướng dẫn giúp mình nhé. Cám ơn.
mrsinguyenus viết 01:44 ngày 10/10/2018
Thường mấy cái search này này được tạo chỉ mục. Rồi replate cái từ khoá thôi. Không có gì phức tạp
hoangthienphuc viết 01:47 ngày 10/10/2018
Bạn có thể cho ví dụ cụ thể được không? Mình sẽ replace cái từ khóa như thế nào? Nói như bạn khó hình dung quá!
sacroyant viết 01:40 ngày 10/10/2018
Khi có kết quả trả về, bạn tìm trong từng mẩu tin và dùng str_replace để thay thế từ khóa trong đó.

Ví dụ :

Code:
function highlight($keyword, $strResult){
  $a ='<span style="background-color:yellow;">';
  $b='</span>';
   return str_replace($keyword,$a.$keyword.$b,$strResult);
}

// tìm kiếm
// nếu có kết quả thì 

 while($row = mysql_fetch_array($result)){

   // trích ra 300 ký tự đầu tiên của bài so khớp ;
     $quoted=substr($row['Content'],0,300);

   // gọi hàm highlight để tìm trong đoạn trích xem nếu có 
   // từ nào giống như từ khóa thì thay thế rồi
   // viết ra :
    echo highlight($quoted);
 }
fanitvn viết 01:42 ngày 10/10/2018
str_replace thì nó chỉ bôi từ nào chính xác viết hoa viết thường!
tandaica0612 viết 01:52 ngày 10/10/2018
thì bác dùng preg_replace thay thế vậy , xem thêm cánh sử dụng trong manual
Bài liên quan
0