Pull to refresh
3
0
mc -aiZer- @mcaiZer

User

Send message

Функции кодировки из UTF в WIN-1251 и обратно

Reading time5 min
Views807
<?php
function utf2win1251($content)
{
                $newcontent = "";

                for ($i = 0; $i < strlen($content); $i++)
                {
                        $c1 = substr($content, $i, 1);
                        $byte1 = ord($c1);
                        if ($byte1>>5 == 6)
                        {
                                $i++;
                                $c2 = substr($content, $i, 1);
                                $byte2 = ord($c2);
                                $byte1 &= 31;
                                $byte2 &= 63;
                                $byte2 |= (($byte1 & 3) << 6);
                                $byte1 >>= 2;
                                $word = ($byte1<<8) + $byte2;

                                if ($word == 1025) $newcontent .= chr(168);
                                else if ($word == 1105) $newcontent .= chr(184);
                                else if ($word >= 0x0410 && $word <= 0x044F) $newcontent .= chr($word-848);
                                else
                                {
                                        $a = dechex($byte1);
                                        $a = str_pad($a, 2, «0», STR_PAD_LEFT);
                                        $b = dechex($byte2);
                                        $b = str_pad($b, 2, «0», STR_PAD_LEFT);
                                        $newcontent .= "&#x".$a.$b.";";
                                }
                        }
                        else
                                $newcontent .= $c1;
                }

        return $newcontent;
}

function win12512utf($content)
{
                $content = preg_replace("#%u([0-9A-F]{1,4})#ie", "'&#'.hexdec('\\1').';'", $content);
                $content = html_entity_decode(urldecode($content), ENT_NOQUOTES, «windows-1251»);

        return $content;
}
?>
Total votes 9: ↑1 and ↓8-7
Comments11

PHP оптимизация: все что нужно знать обязательно

Reading time1 min
Views779
По этой статье видно, что читатели сайта живо интересуются оптимизацией своих PHP-скриптов, однако некоторые вещи вызывают споры, например, про кавычки.

Сам лично придерживаюсь советов статьи про оптимизицаию. Сам проверял некоторые цифры в процентных соотношениях, хотя статья старовата, но до сих пор актуальна.

Итак, все советы:
  • Выносим переменные из текстовых строк — ускорение 25-40%
    Короткие переменные не более 7 символов — ускорение 15%
    Тормозят ли массивы в PHP? Вернее, как именно — ускорение 40%
    Выносим многомерные массивы из текстовых строк — ускорение 25-30%
    Регулярные выражения: PHP(POSIX) vs. Perlускорение 60-200%
    Циклы: for, foreach, while, count/sizeof() — ускорение 15%-30%
    Для чтения файла file() быстрее, чем fopen+цикл — ускорение 40%
    Автор статьи: DEL
    Дата публикации: 26 июня 2007
    Ссылка на статью: www.habrahabr.ru/blog/webdev/18791.html
Total votes 6: ↑1 and ↓5-4
Comments0

Склонение существительных с числительными

Reading time1 min
Views1.9K
Вы, наверное, сталкивались с проблемой, когда слово со значением числа, которое, например, выводится прямо из базы данных, нужно склонять в зависимости от значения, но Вы не знаете как. Нижеприведенная функция поможет Вам.

<?php
function plural($n, $form1, $form2, $form5)
{
                $n = abs($n) % 100;
                $n1 = $n % 10;
                if ($n > 10 && $n < 20) return $form5;
                else if ($n1 > 1 && $n1 < 5) return $form2;
                else if ($n1 == 1) return $form1;

        return $form5;
}
$n = 3; // Значение из базы данных
echo $n." ".plural($n, "письмо", "письма", "писем")." у Вас в ящике";
?>
Total votes 10: ↑7 and ↓3+4
Comments26

Information

Rating
Does not participate
Location
Эстония
Date of birth
Registered