Показать сообщение отдельно

  #96  
Старый 11.07.2009, 11:22
imajo.ati
Участник форума
Регистрация: 21.02.2008
Сообщений: 255
Провел на форуме:
975514

Репутация: 177
По умолчанию

вот мой вариант задания 29

PHP код:
<?php

$text 
'тут utf8 русский текст';
$revtext '';

$i=0;
$len strlen($text);
while(
$i<$len)
{
    if ( 
ord($text[$i]) > 128 )
    {
        
$revtext $text[$i].$text[++$i] . $revtext;
        ++
$i;
    }
    else
    {
        
$revtext $text[$i] . $revtext;
        ++
$i;
    }
}

echo 
$revtext;
UTF-8 — это представление Юникода
символы Юникода изображаются последовательностями длиной от 2 до 6 байт
(на деле, только до 4 байт, поскольку в Юникоде нет символов с кодом больше 10FFFF)

да, осталось только определить сколько байт символ занимает.. мой вариант от 1 до 2 =\


PHP код:
<?php

$text 
'тут utf8 русский текст';
$revtext '';

$i=0;
$len strlen($text);
while(
$i<$len)
{
    if ( 
ord($text[$i]) > 128 )
    {
        if ( 
ord($text[$i]) == 255 )
        {
            if ( 
ord($text[$i+1]) == 255 )
            {
                
$revtext $text[$i].$text[++$i].$text[++$i].$text[++$i] . $revtext;
                ++
$i;
            }
            else
            {
                
$revtext $text[$i].$text[++$i].$text[++$i] . $revtext;
                ++
$i;
            }
        }
        else
        {
            
$revtext $text[$i].$text[++$i] . $revtext;
            ++
$i;
        }
    }
    else
    {
        
$revtext $text[$i] . $revtext;
        ++
$i;
    }
}

echo 
$revtext;
так ?)

Последний раз редактировалось imajo.ati; 11.07.2009 в 11:50..
 
Ответить с цитированием