Mysql
 sql >> база данни >  >> RDS >> Mysql

как да подчертаете резултатите от търсенето

Не бива да си го правите твърде трудно. Всичко, от което се нуждаете, за да замените всяко появяване на дума с думата, обвита в span с приложен необходимия стил. Това трябва да работи за вас:

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>';
}

Използването на регулярни изрази за замяна на съдържание също би свършило работа, макар и използването на str_replace() е малко по-бързо.

Функциите приемат тези аргументи:

highlight_word( string, string, string );

highlight_words( string, array, array );

Горният пример води до:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. предаване на масив като параметър, който да се използва в SQL заявка с помощта на командата IN

  2. Python Connector за Django 1.9 и Python 3.5?

  3. Конвертирайте UPDATE с INNER JOIN от SQL за използване в MySQL

  4. mysql ПЪЛЕН ТЕКСТ търси няколко думи

  5. Какви са разликите между mysql-connector-python, mysql-connector-python-rf и mysql-connector-repackaged?