Changeset 747
- Timestamp:
- 01/09/2004 11:16:10 AM (21 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/wp-includes/functions.php
r708 r747 1662 1662 } 1663 1663 1664 /* Highlighting code c/o Ryan Boren */ 1665 function 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 1681 function 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 1699 function 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 1664 1720 // Check for hacks file if the option is enabled 1665 1721 if (get_settings('hack_file')) {
Note: See TracChangeset
for help on using the changeset viewer.