Mysql
 sql >> Baza danych >  >> RDS >> Mysql

jak wyróżnić wyniki wyszukiwania

Nie powinieneś sobie tego utrudniać. Wszystko, czego potrzebujesz, aby zastąpić każde wystąpienie słowa słowem zawiniętym w zakres z zastosowanym wymaganym stylem. To powinno działać dla Ciebie:

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

Używanie wyrażeń regularnych do zastępowania treści również działałoby, chociaż użycie str_replace() jest trochę szybszy.

Funkcje przyjmują następujące argumenty:

highlight_word( string, string, string );

highlight_words( string, array, array );

Powyższy przykład daje w wyniku:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy muszę używać biblioteki puli C3P0 w mojej aplikacji internetowej (grails)?

  2. Rails 5 i Ruby 2.3.3 nie mogą załadować libmysql.dll

  3. Znajdź MAX SUM w MySQL

  4. Problem z wyzwalaczem MYSQL

  5. Skrypt importu CSV do Mysql w celu dopasowania pól