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;
|
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)
|
function sql_like_expression($expression)
|
||||||
{
|
{
|
||||||
$expression = utf8_str_replace(array('_', '%'), array("\_", "\%"), $expression);
|
$expression = str_replace(array('_', '%'), array("\_", "\%"), $expression);
|
||||||
$expression = utf8_str_replace(array(chr(0) . "\_", chr(0) . "\%"), array('_', '%'), $expression);
|
$expression = str_replace(array(chr(0) . "\_", chr(0) . "\%"), array('_', '%'), $expression);
|
||||||
|
|
||||||
return $this->_sql_like_expression('LIKE \'' . $this->sql_escape($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)
|
function sql_not_like_expression($expression)
|
||||||
{
|
{
|
||||||
$expression = utf8_str_replace(array('_', '%'), array("\_", "\%"), $expression);
|
$expression = str_replace(array('_', '%'), array("\_", "\%"), $expression);
|
||||||
$expression = utf8_str_replace(array(chr(0) . "\_", chr(0) . "\%"), array('_', '%'), $expression);
|
$expression = str_replace(array(chr(0) . "\_", chr(0) . "\%"), array('_', '%'), $expression);
|
||||||
|
|
||||||
return $this->_sql_not_like_expression('NOT LIKE \'' . $this->sql_escape($expression) . '\'');
|
return $this->_sql_not_like_expression('NOT LIKE \'' . $this->sql_escape($expression) . '\'');
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue