|
|
|
| пРЕВЕД => Превед
т.е. верхний в нижний и наоборот.
Интересен самый простой вариант..
пока идея только пойти циклом делать strtolower каждого символа и сравнивать с оригинальным. | |
|
|
|
|
|
|
|
для: sl1p
(23.06.2011 в 14:49)
| | >пока идея только пойти циклом делать strtolower каждого символа и сравнивать с
>оригинальным.
Наверное в случае русского языка это будет самым простым вариантом. | |
|
|
|
|
|
|
|
для: cheops
(23.06.2011 в 15:04)
| | а если латинские? | |
|
|
|
|
|
|
|
для: sl1p
(23.06.2011 в 15:07)
| | перевести в нижний регистр все и сделать первую букву заглавной
итого 2 функции | |
|
|
|
|
|
|
|
для: sl1p
(23.06.2011 в 15:07)
| | В общем без цикла тоже не обойтись, но в случае латинских символов в Интернет можно быть почти на 100% уверенным, что это будет либо ASCII либо UTF8. У обеих кодировок коды латинских символов совпадают. Причем все символы (и маленькие и большие) идут подряд в алфавитном порядке, но в разных диапазонах кода. Следовательно нужно лишь проверить диапазон символов и либо вычесть, либо прибавить разницу к коду, а потом взять символ. Т.е. работа идет с функциями ord() и chr(). | |
|
|
|
|
|
|
|
для: cheops
(23.06.2011 в 15:54)
| | о я далек от этих штук. Всё хочу разобраться в таких делах но както руки не дойдут:)
не посоветуете чёнить почитать на такую тему?) | |
|
|
|
|
|
|
|
для: sl1p
(23.06.2011 в 17:27)
| | Собственно по хорошему нужно знать, что каждому символу соответствует число, к этому числу можно прибавить другое число и получить другой символ.
<?php
$str = "Hello World";
for($i = 0; $i < strlen($str); $i++)
{
echo $str[$i]." = ".ord($str[$i])."<br />";
}
?>
| Ваша задача для английского алфавита решается так (для русского уже простым сложением и вычитанием не обойтись, там в зависимости от кодировки могут быть разные сюрпризы в расположении элементов)
<?php
for($i = 0; $i < strlen($str); $i++)
{
$code = ord($str[$i]);
if($code >= 65 && $code <= 90)
{
// Это заглавная буква - делаем её прописной
echo chr($code + 32);
}
else
{
// Это прописная буква - делаем её заглавной
echo chr($code - 32);
}
}
?>
| Все функции PHP для преобразования регистра, делают примерно тоже самое, что я написал, только на C++ и для всех кодировок, а не только для английской. | |
|
|
|
|
|
|
|
для: cheops
(23.06.2011 в 18:07)
| | хм, спасибо большое. | |
|
|
|