本文整理汇总了PHP中UTF8::wpstr_ireplace方法的典型用法代码示例。如果您正苦于以下问题:PHP UTF8::wpstr_ireplace方法的具体用法?PHP UTF8::wpstr_ireplace怎么用?PHP UTF8::wpstr_ireplace使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类UTF8
的用法示例。
在下文中一共展示了UTF8::wpstr_ireplace方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: wpstr_ireplace
/**
* Returns a string or an array with all occurrences of search in subject
* (ignoring case) and replaced with the given replace value. This is a
* UTF8-aware version of [str_ireplace](http://php.net/str_ireplace).
*
* [!!] This function is very slow compared to the native version. Avoid
* using it when possible.
*
* @author Harry Fuecks <hfuecks@gmail.com
* @param string|array $search text to replace
* @param string|array $replace replacement text
* @param string|array $str subject text
* @param integer $count number of matched and replaced needles will be returned via this parameter which is passed by reference
* @return string if the input was a string
* @return array if the input was an array
*/
public static function wpstr_ireplace($search, $replace, $str, &$count = NULL)
{
if (UTF8::is_ascii($search) and UTF8::is_ascii($replace) and UTF8::is_ascii($str)) {
return str_ireplace($search, $replace, $str, $count);
}
if (is_array($str)) {
foreach ($str as $key => $val) {
$str[$key] = UTF8::wpstr_ireplace($search, $replace, $val, $count);
}
return $str;
}
if (is_array($search)) {
$keys = array_keys($search);
foreach ($keys as $k) {
if (is_array($replace)) {
if (array_key_exists($k, $replace)) {
$str = UTF8::wpstr_ireplace($search[$k], $replace[$k], $str, $count);
} else {
$str = UTF8::wpstr_ireplace($search[$k], '', $str, $count);
}
} else {
$str = UTF8::wpstr_ireplace($search[$k], $replace, $str, $count);
}
}
return $str;
}
$search = UTF8::wpstrtolower($search);
$str_lower = UTF8::wpstrtolower($str);
$total_matched_strlen = 0;
$i = 0;
while (preg_match('/(.*?)' . preg_quote($search, '/') . '/s', $str_lower, $matches)) {
$matched_strlen = strlen($matches[0]);
$str_lower = substr($str_lower, $matched_strlen);
$offset = $total_matched_strlen + strlen($matches[1]) + $i * (strlen($replace) - 1);
$str = substr_replace($str, $replace, $offset, strlen($search));
$total_matched_strlen += $matched_strlen;
$i++;
}
$count += $i;
return $str;
}