./comments
./contacts telegram: @stikname
email: ;

Инвертирование регистра символов на 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.
17.09.2013 10:59:40
stk
966
2
Комментарии

Влад
12.11.2017 14:03:13
а как второй вариант работает?
stk
12.11.2017 17:34:22
Перебирает все символы подряд, берет каждый по очереди, узнает его код, меняет на +32 или -32 в зависимости от диапазона значений. И заменяет на символ с новым кодом.

Все вроде просто :)