mirror of
https://github.com/phpbb/phpbb.git
synced 2025-07-31 05:50:42 +02:00
[feature/patchwork-utf8] Remove utf8_str_replace
This commit is contained in:
@@ -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) . '\'');
|
||||
}
|
||||
|
Reference in New Issue
Block a user