sql >> Database teknologi >  >> RDS >> Mysql

hvordan man fremhæver søgeresultater

Du skal ikke gøre det for svært for dig selv. Alt hvad du behøver for at erstatte hver forekomst af et ord med ordet pakket ind i spændet med den påkrævede stil anvendt. Dette burde fungere for dig:

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

Brug af regulære udtryk til at erstatte indhold ville også gøre det, selvom du bruger str_replace() er lidt hurtigere.

Funktionerne accepterer disse argumenter:

highlight_word( string, string, string );

highlight_words( string, array, array );

Ovenstående eksempel resulterer i:



  1. Oracle - opdater samme tabel som triggeren udløses på

  2. Trigger for at håndhæve M-M-forhold

  3. Oracle To_Char funktion V i formatstreng

  4. handlingen omdøbning af utl-fil mislykkedes