Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

cách làm nổi bật kết quả tìm kiếm

Bạn không nên tự làm khó mình. Tất cả những gì bạn cần để thay thế mọi lần xuất hiện của một từ bằng từ được gói trong khoảng với kiểu bắt buộc được áp dụng. Điều này sẽ phù hợp với bạn:

function highlight_word( $content, $word, $color ) {
    $replace = '<span style="background-color: ' . $color . ';">' . $word . '</span>'; // create replacement
    $content = str_replace( $word, $replace, $content ); // replace content

    return $content; // return highlighted data
}

function highlight_words( $content, $words, $colors ) {
    $color_index = 0; // index of color (assuming it's an array)

    // loop through words
    foreach( $words as $word ) {
        $content = highlight_word( $content, $word, $colors[$color_index] ); // highlight word
        $color_index = ( $color_index + 1 ) % count( $colors ); // get next color index
    }

    return $content; // return highlighted data
}



// words to find
$words = array(
    'normal',
    'text'
);

// colors to use
$colors = array(
    '#88ccff',
    '#cc88ff'
);

// faking your results_text
$results_text = array(
    array(
        'ab'    => 'AB #1',
        'cd'    => 'Some normal text with normal words isn\'t abnormal at all'
    ), array(
        'ab'    => 'AB #2',
        'cd'    => 'This is another text containing very normal content'
    )
);

// loop through results (assuming $output1 is true)
foreach( $results_text as $result ) {
    $result['cd'] = highlight_words( $result['cd'], $words, $colors );

    echo '<fieldset><p>ab: ' . $result['ab'] . '<br />cd: ' . $result['cd'] . '</p></fieldset>';
}

Việc sử dụng Biểu thức chính quy để thay thế nội dung cũng sẽ tốt, mặc dù sử dụng str_replace() nhanh hơn một chút.

Các hàm chấp nhận các đối số sau:

highlight_word( string, string, string );

highlight_words( string, array, array );

Ví dụ trên dẫn đến:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wordpress - lấy hình ảnh từ db được lưu trữ dưới dạng dữ liệu blob

  2. Việc lưu trữ số lượng bản ghi cơ sở dữ liệu có thừa không?

  3. MySQL Chọn Nhiều GIÁ TRỊ

  4. LOAD DATA LOCAL INFILE dừng nhập ở 69 nghìn hàng

  5. Phân tách hiệu suất giữa sql SELECT NULL và SELECT 1