Инвертирование регистра символов на PHP
PHPФункции/варианты инвертирования регистра английских символов. Накопал куски, собрал, делюсь.
Требуется для превращения строки типа "Hello fAsdasdDS" в "hELLO FaSDASDds". Зачем? Нужно... )
echo strtr($str,
'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz',
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ');
echo strtolower($str) ^ strtoupper($str) ^ $str;
function invertCase($str) {
$rslt="";
for ($i = 0; $i < strlen($str); $i++) {
$code = ord($str[$i]);
if ($code >= 65 && $code <= 90) {
$rslt .= chr($code + 32);
} else {
$rslt .= chr($code - 32);
}
}
return $rslt;
}
echo invertCase($str);
Конечно же на php.
Комментарии
Влад
12.11.2017 14:03:13
12.11.2017 14:03:13
а как второй вариант работает?
admin
12.11.2017 17:34:22
12.11.2017 17:34:22
Перебирает все символы подряд, берет каждый по очереди, узнает его код, меняет на +32 или -32 в зависимости от диапазона значений. И заменяет на символ с новым кодом.
Все вроде просто :)
Все вроде просто :)