Ejemplo n.º 1
0
 /**
  * Case-insensitive version of str_replace
  * @see http://www.php.net/str_ireplace
  */
 static function str_ireplace($search, $replace, $str, $count = null)
 {
     if (!is_array($search)) {
         $slen = strlen($search);
         if ($slen == 0) {
             return $str;
         }
         $search = Jaws_UTF8::strtolower($search);
         $search = preg_quote($search);
         $lstr = Jaws_UTF8::strtolower($str);
         $i = 0;
         $matched = 0;
         while (preg_match('/(.*)' . $search . '/Us', $lstr, $matches)) {
             if ($i === $count) {
                 break;
             }
             $mlen = strlen($matches[0]);
             $lstr = substr($lstr, $mlen);
             $str = substr_replace($str, $replace, $matched + strlen($matches[1]), $slen);
             $matched += $mlen;
             $i++;
         }
         return $str;
     } else {
         foreach (array_keys($search) as $k) {
             if (is_array($replace)) {
                 if (array_key_exists($k, $replace)) {
                     $str = Jaws_UTF8::str_ireplace($search[$k], $replace[$k], $str, $count);
                 } else {
                     $str = Jaws_UTF8::str_ireplace($search[$k], '', $str, $count);
                 }
             } else {
                 $str = Jaws_UTF8::str_ireplace($search[$k], $replace, $str, $count);
             }
         }
         return $str;
     }
 }