sql_regcase
(PHP 4, PHP 5)
sql_regcase — Создает регулярное выражение для регистронезависимого сравнения
Описание
$string
)Создает регулярное выражение для регистронезависимого сравнения.
С версии PHP 5.3.0 эта функция считается УСТАРЕВШЕЙ. Крайне не рекомендуется полагаться на эту возможность.
Список параметров
-
string
-
Входная строка.
Возвращаемые значения
Создает допустимое регулярное выражение, которое будет совпадать с
string
, игнорируя регистр символов. Это выражение является
string
, в которой каждый буквенный символ заменен на символьный класс
(выражение в квадратных скобках); каждый такой символьный класс содержит символы в нижнем и верхнем регистре.
Другие символы остаются без изменений.
Примеры
Пример #1 Пример функции sql_regcase()
<?php
echo sql_regcase("Foo - bar.");
?>
Результат выполнения данного примера:
[Ff][Oo][Oo] - [Bb][Aa][Rr].
Это может быть использовано для получения регистронезависимых шаблонов поиска на системах, которые поддерживают только регистрозависимые регулярные выражения.
Примечания
Замечание:
С версии PHP 5.3.0, расширение regex помечено устаревшим и заменено расширением PCRE. Вызов этой функции приведет к ошибке уровня
E_DEPRECATED
. Смотрите список отличий для помощи при конвертировании в PCRE.
Коментарии
if you set right locale:
setlocale(LC_CTYPE,"ru_RU.KOI8-R");
print sql_regcase("Цffnung");
will output:
"[Цц][Ff][Ff][Nn][Uu][Nn][Gg]"
This function naivley replaces the letters in your expression.
if your expression uses [] already using this will probably break it
function php7_regcase($str)
{
if (empty($str))
return '';
$chars = str_split($str);
foreach ($chars as $char) {
if (preg_match("/[A-Za-z]/", $char)) {
$str_upper = mb_strtoupper($char, 'UTF-8');
$str_lower = mb_strtolower($char, 'UTF-8');
$resp[] = "[{$str_upper}{$str_lower}]";
} else {
$resp[] = $char;
}
}
return implode('', $resp);
}