From 29e86c7f039b2cc1714dc54f1b64668c94b482f6 Mon Sep 17 00:00:00 2001 From: Domas Mituzas Date: Mon, 16 Aug 2004 11:47:56 +0000 Subject: [PATCH] Enter 10x more efficient stripForSearch code. This method returns lowercased string (same as in Language). Other stripForSearch'es should be reviewed and later double efforts to lowercase text in SearchUpdate, SearchEngine and elswhere removed. --- languages/LanguageUtf8.php | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/languages/LanguageUtf8.php b/languages/LanguageUtf8.php index 3c68f8e3f9..51ecd49fca 100644 --- a/languages/LanguageUtf8.php +++ b/languages/LanguageUtf8.php @@ -53,11 +53,23 @@ class LanguageUtf8 extends Language { function stripForSearch( $string ) { # MySQL fulltext index doesn't grok utf-8, so we # need to fold cases and convert to hex - global $wikiLowerChars; - return preg_replace( - "/([\\xc0-\\xff][\\x80-\\xbf]*)/e", - "'U8' . bin2hex( strtr( \"\$1\", \$wikiLowerChars ) )", - $string ); + + # In Language:: it just returns lowercase, maybe + # all strtolower on stripped output or argument + # should be removed and all stripForSearch + # methods adjusted to that. + if (function_exists('mb_strtolower')) { + return preg_replace( + "/([\\xc0-\\xff][\\x80-\\xbf]*)/e", + "'U8' . bin2hex( $1 )", + mb_strtolower($string) ); + } else { + global $wikiLowerChars; + return preg_replace( + "/([\\xc0-\\xff][\\x80-\\xbf]*)/e", + "'U8' . bin2hex( strtr( \"\$1\", \$wikiLowerChars ) )", + $string ); + } } function fallback8bitEncoding() { -- 2.20.1