mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-28 06:08:52 +00:00
[feature/patchwork-utf8] Remove utf8_str_replace
This commit is contained in:
parent
5a7caf6508
commit
a2300eb3aa
2 changed files with 4 additions and 51 deletions
|
@ -1902,50 +1902,3 @@ function utf8_basename($filename)
|
|||
|
||||
return $filename;
|
||||
}
|
||||
|
||||
/**
|
||||
* UTF8-safe str_replace() function
|
||||
*
|
||||
* @param string $search The value to search for
|
||||
* @param string $replace The replacement string
|
||||
* @param string $subject The target string
|
||||
* @return string The resultant string
|
||||
*/
|
||||
function utf8_str_replace($search, $replace, $subject)
|
||||
{
|
||||
if (!is_array($search))
|
||||
{
|
||||
$search = array($search);
|
||||
if (is_array($replace))
|
||||
{
|
||||
$replace = (string) $replace;
|
||||
trigger_error('Array to string conversion', E_USER_NOTICE);
|
||||
}
|
||||
}
|
||||
|
||||
$length = sizeof($search);
|
||||
|
||||
if (!is_array($replace))
|
||||
{
|
||||
$replace = array_fill(0, $length, $replace);
|
||||
}
|
||||
else
|
||||
{
|
||||
$replace = array_pad($replace, $length, '');
|
||||
}
|
||||
|
||||
for ($i = 0; $i < $length; $i++)
|
||||
{
|
||||
$search_length = utf8_strlen($search[$i]);
|
||||
$replace_length = utf8_strlen($replace[$i]);
|
||||
|
||||
$offset = 0;
|
||||
while (($start = utf8_strpos($subject, $search[$i], $offset)) !== false)
|
||||
{
|
||||
$subject = utf8_substr($subject, 0, $start) . $replace[$i] . utf8_substr($subject, $start + $search_length);
|
||||
$offset = $start + $replace_length;
|
||||
}
|
||||
}
|
||||
|
||||
return $subject;
|
||||
}
|
||||
|
|
|
@ -363,8 +363,8 @@ abstract class driver implements driver_interface
|
|||
*/
|
||||
function sql_like_expression($expression)
|
||||
{
|
||||
$expression = utf8_str_replace(array('_', '%'), array("\_", "\%"), $expression);
|
||||
$expression = utf8_str_replace(array(chr(0) . "\_", chr(0) . "\%"), array('_', '%'), $expression);
|
||||
$expression = str_replace(array('_', '%'), array("\_", "\%"), $expression);
|
||||
$expression = str_replace(array(chr(0) . "\_", chr(0) . "\%"), array('_', '%'), $expression);
|
||||
|
||||
return $this->_sql_like_expression('LIKE \'' . $this->sql_escape($expression) . '\'');
|
||||
}
|
||||
|
@ -374,8 +374,8 @@ abstract class driver implements driver_interface
|
|||
*/
|
||||
function sql_not_like_expression($expression)
|
||||
{
|
||||
$expression = utf8_str_replace(array('_', '%'), array("\_", "\%"), $expression);
|
||||
$expression = utf8_str_replace(array(chr(0) . "\_", chr(0) . "\%"), array('_', '%'), $expression);
|
||||
$expression = str_replace(array('_', '%'), array("\_", "\%"), $expression);
|
||||
$expression = str_replace(array(chr(0) . "\_", chr(0) . "\%"), array('_', '%'), $expression);
|
||||
|
||||
return $this->_sql_not_like_expression('NOT LIKE \'' . $this->sql_escape($expression) . '\'');
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue