/** * 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; } }