diff options
author | Andreas Gohr <andi@splitbrain.org> | 2010-10-02 18:38:27 +0200 |
---|---|---|
committer | Andreas Gohr <andi@splitbrain.org> | 2010-10-02 18:38:27 +0200 |
commit | feb563fa9c27209131711d3ef93ebf1f74aadb0d (patch) | |
tree | 4b0752ffd7c50b320b5f4992f59e82c0309c66a3 | |
parent | f3f7087bd8d0b583a3add1b38877a2b9ef39322e (diff) | |
parent | 26eb848c36688e459e5dfc46cdc68d87ed2bda0c (diff) | |
download | rpg-feb563fa9c27209131711d3ef93ebf1f74aadb0d.tar.gz rpg-feb563fa9c27209131711d3ef93ebf1f74aadb0d.tar.bz2 |
Merge branch 'master' of github.com:splitbrain/dokuwiki
-rw-r--r-- | inc/fulltext.php | 9 | ||||
-rw-r--r-- | inc/html.php | 9 |
2 files changed, 16 insertions, 2 deletions
diff --git a/inc/fulltext.php b/inc/fulltext.php index e90205e9c..7dae183c8 100644 --- a/inc/fulltext.php +++ b/inc/fulltext.php @@ -313,7 +313,7 @@ function ft_snippet($id,$highlight){ $len = utf8_strlen($text); // build a regexp from the phrases to highlight - $re1 = '('.join('|',array_map('preg_quote_cb',array_filter((array) $highlight))).')'; + $re1 = '('.join('|',array_map('_ft_snippet_re_preprocess', array_map('preg_quote_cb',array_filter((array) $highlight)))).')'; $re2 = "$re1.{0,75}(?!\\1)$re1"; $re3 = "$re1.{0,45}(?!\\1)$re1.{0,45}(?!\\1)(?!\\2)$re1"; @@ -387,6 +387,13 @@ function ft_snippet($id,$highlight){ } /** + * Wraps a search term in regex boundary checks. + */ +function _ft_snippet_re_preprocess($term) { + return '\b'.$term.'\b'; +} + +/** * Combine found documents and sum up their scores * * This function is used to combine searched words with a logical diff --git a/inc/html.php b/inc/html.php index add559971..e1478b0a8 100644 --- a/inc/html.php +++ b/inc/html.php @@ -285,7 +285,7 @@ function html_draft(){ */ function html_hilight($html,$phrases){ $phrases = array_filter((array) $phrases); - $regex = join('|',array_map('preg_quote_cb',$phrases)); + $regex = join('|',array_map('_html_hilight_re_preprocess', array_map('preg_quote_cb',$phrases))); if ($regex === '') return $html; $html = preg_replace_callback("/((<[^>]*)|$regex)/ui",'html_hilight_callback',$html); @@ -293,6 +293,13 @@ function html_hilight($html,$phrases){ } /** + * Wraps a search term in regex boundary checks. + */ +function _html_hilight_re_preprocess($term) { + return '\b'.$term.'\b'; +} + +/** * Callback used by html_hilight() * * @author Harry Fuecks <hfuecks@gmail.com> |