| [ Index ] |
PHP Cross Reference of Joomla 1.5.26 DE |
[Summary view] [Print] [Text view]
1 <?php 2 /** 3 * @version $Id: str_ireplace.php 10381 2008-06-01 03:35:53Z pasamio $ 4 * @package utf8 5 * @subpackage strings 6 */ 7 8 //--------------------------------------------------------------- 9 /** 10 * UTF-8 aware alternative to str_ireplace 11 * Case-insensitive version of str_replace 12 * Note: requires utf8_strtolower 13 * Note: it's not fast and gets slower if $search / $replace is array 14 * Notes: it's based on the assumption that the lower and uppercase 15 * versions of a UTF-8 character will have the same length in bytes 16 * which is currently true given the hash table to strtolower 17 * @param string 18 * @return string 19 * @see http://www.php.net/str_ireplace 20 * @see utf8_strtolower 21 * @package utf8 22 * @subpackage strings 23 */ 24 function utf8_ireplace($search, $replace, $str, $count = NULL){ 25 26 if ( !is_array($search) ) { 27 28 $slen = strlen($search); 29 $lendif = strlen($replace) - $slen; 30 if ( $slen == 0 ) { 31 return $str; 32 } 33 34 $search = utf8_strtolower($search); 35 36 $search = preg_quote($search, '/'); 37 $lstr = utf8_strtolower($str); 38 $i = 0; 39 $matched = 0; 40 while ( preg_match('/(.*)'.$search.'/Us',$lstr, $matches) ) { 41 if ( $i === $count ) { 42 break; 43 } 44 $mlen = strlen($matches[0]); 45 $lstr = substr($lstr, $mlen); 46 $str = substr_replace($str, $replace, $matched+strlen($matches[1]), $slen); 47 $matched += $mlen + $lendif; 48 $i++; 49 } 50 return $str; 51 52 } else { 53 54 foreach ( array_keys($search) as $k ) { 55 56 if ( is_array($replace) ) { 57 58 if ( array_key_exists($k,$replace) ) { 59 60 $str = utf8_ireplace($search[$k], $replace[$k], $str, $count); 61 62 } else { 63 64 $str = utf8_ireplace($search[$k], '', $str, $count); 65 66 } 67 68 } else { 69 70 $str = utf8_ireplace($search[$k], $replace, $str, $count); 71 72 } 73 } 74 return $str; 75 76 } 77 78 } 79 80
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
| Generated: Wed Mar 28 15:54:07 2012 | Cross-referenced by PHPXref 0.7.1 |