Make WordPress Core

Changeset 747


Ignore:
Timestamp:
01/09/2004 11:16:10 AM (21 years ago)
Author:
saxmatt
Message:

Google hilite.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-includes/functions.php

    r708 r747  
    16621662}
    16631663
     1664/* Highlighting code c/o Ryan Boren */
     1665function get_search_query_terms($engine = 'google') {
     1666    $referer = urldecode($_SERVER[HTTP_REFERER]);
     1667    $query_array = array();
     1668    switch ($engine) {
     1669    case 'google':
     1670        // Google query parsing code adapted from Dean Allen's
     1671        // Google Hilite 0.3. http://textism.com
     1672        $query_terms = preg_replace('/^.*q=([^&]+)&?.*$/i','$1', $referer);
     1673        $query_terms = preg_replace('/\'|"/','', $query_terms);
     1674        $query_array = preg_split ("/[\s,\+\.]+/", $query_terms);
     1675        break;
     1676    }
     1677
     1678    return $query_array;
     1679}
     1680
     1681function is_referer_search_engine($engine = 'google') {
     1682    $referer = urldecode($_SERVER[HTTP_REFERER]);
     1683
     1684    if ( ! $engine ) {
     1685        return 0;
     1686    }
     1687
     1688    switch ($engine) {
     1689    case 'google':
     1690        if (preg_match('|^http://(www)?\.?google\.*|i',$referer)) {
     1691            return 1;
     1692        }
     1693        break;
     1694    }
     1695
     1696    return 0;
     1697}
     1698
     1699function hilite($text) {
     1700    $search_engines = array('google');
     1701
     1702    foreach ($search_engines as $engine) {
     1703        if ( is_referer_search_engine($engine) ) {
     1704            $query_terms = get_search_query_terms($engine);
     1705            foreach ($query_terms as $term) {
     1706                if (!preg_match('/<.+>/',$text)) {
     1707                    $text = preg_replace('/(\b'.$term.'\b)/i','<span class="hilite">$1</span>',$text);
     1708                } else {
     1709                    $text = preg_replace('/(?<=>)([^<]+)?(\b'.$term.'\b)/i','$1<span class="hilite">$2</span>',$text);
     1710                }
     1711            }
     1712        break;
     1713        }
     1714    }
     1715
     1716    return $text;
     1717}
     1718
     1719
    16641720// Check for hacks file if the option is enabled
    16651721if (get_settings('hack_file')) {
Note: See TracChangeset for help on using the changeset viewer.