
11.07.2009, 11:22
|
|
Участник форума
Регистрация: 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..
|
|
|