aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorz0rglub <z0rglub@piwigo.org>2004-03-31 22:26:15 +0000
committerz0rglub <z0rglub@piwigo.org>2004-03-31 22:26:15 +0000
commit4bd0efd3eacaa8e11b6b711e04e0c527ad926a16 (patch)
treee25d150bbf4152d64e979f97f479d40f64206b27
parentbbacac635c296844a1012177f1830b3e1d32ccd5 (diff)
bug 23 : search case insensitive BUT highlightning case sensitive
git-svn-id: http://piwigo.org/svn/branches/release-1_3@410 68402e56-0260-453c-a942-63ccdbb3a9ee
-rw-r--r--include/functions.inc.php25
1 files changed, 17 insertions, 8 deletions
diff --git a/include/functions.inc.php b/include/functions.inc.php
index 94050d13b..2a3a795c8 100644
--- a/include/functions.inc.php
+++ b/include/functions.inc.php
@@ -260,10 +260,17 @@ function get_languages( $rep_language )
return $languages;
}
-// - add_style replaces the
-// $search into <span style="$style">$search</span>
-// in the given $string.
-// - The function does not replace characters in HTML tags
+/**
+ * replaces the $search into <span style="$style">$search</span> in the
+ * given $string.
+ *
+ * case insensitive replacements, does not replace characters in HTML tags
+ *
+ * @param string $string
+ * @param string $search
+ * @param string $style
+ * @return string
+ */
function add_style( $string, $search, $style )
{
//return $string;
@@ -277,15 +284,17 @@ function add_style( $string, $search, $style )
while ( is_numeric( $start ) and is_numeric( $end ) )
{
$treatment = substr ( $remaining, 0, $start );
- $treatment = str_replace( $search, '<span style="'.$style.'">'.
- $search.'</span>', $treatment );
+ $treatment = preg_replace( '/('.$search.')/i',
+ '<span style="'.$style.'">\\0</span>',
+ $treatment );
$return_string.= $treatment.substr( $remaining, $start, $end-$start+1 );
$remaining = substr ( $remaining, $end + 1, strlen( $remaining ) );
$start = strpos ( $remaining, '<' );
$end = strpos ( $remaining, '>' );
}
- $treatment = str_replace( $search, '<span style="'.$style.'">'.
- $search.'</span>', $remaining );
+ $treatment = preg_replace( '/('.$search.')/i',
+ '<span style="'.$style.'">\\0</span>',
+ $remaining );
$return_string.= $treatment;
return $return_string;