Files
gallery3/kohana/core/utf8/str_ireplace.php
Bharat Mediratta 3b35e8b91c Refresh kohana from upstream svn trunk r3771.
During this process, remove a considerable number of files from kohana
that we will not be needing in Gallery3, including the following files
and directories:
    kohana/application
    kohana/example.htaccess
    kohana/index.php
    kohana/install.php
    kohana/kohana.png
    kohana/modules/archive
    kohana/modules/auth
    kohana/modules/flot
    kohana/modules/gmaps
    kohana/modules/kodoc
    kohana/modules/payment
    kohana/modules/smarty
    kohana/modules/unit_test/i18n
    kohana/modules/unit_test/tests/Example_Test.php
    kohana/modules/unit_test/tests/Valid_Test.php
    kohana/system/config/captcha.php
    kohana/system/controllers/captcha.php
    kohana/system/fonts
    kohana/system/i18n
    kohana/system/libraries/Calendar.php
    kohana/system/libraries/Calendar_Event.php
    kohana/system/libraries/Captcha.php
    kohana/system/libraries/Tagcloud.php
    kohana/system/vendor
    kohana/system/views/pagination
    kohana/system/views/kohana_calendar.php
2008-12-15 08:56:18 +00:00

71 lines
1.6 KiB
PHP

<?php defined('SYSPATH') OR die('No direct access allowed.');
/**
* utf8::str_ireplace
*
* @package Core
* @author Kohana Team
* @copyright (c) 2007 Kohana Team
* @copyright (c) 2005 Harry Fuecks
* @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt
*/
function _str_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::str_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::str_ireplace($search[$k], $replace[$k], $str, $count);
}
else
{
$str = utf8::str_ireplace($search[$k], '', $str, $count);
}
}
else
{
$str = utf8::str_ireplace($search[$k], $replace, $str, $count);
}
}
return $str;
}
$search = utf8::strtolower($search);
$str_lower = utf8::strtolower($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;
}