Памятка для работы со строками

Довольно часто у меня нет доступа к настройкам php или моё вмешательсво может привести к проблемам. Бывает забудишь, что, реботая со строками (в частности в кодировке utf8 ), нужно обязательно использовать мультибайтовые  функции (mb_...), чотбы не получилось, что длина строки "Строка" не 6 символов, а 12.

Не то что бы я этого не знала... но захотелось для нагляжности создать скрипт.
<?php
//Фокус мокус!
$var1 = 'String';
$var2 = 'Строка';

dump('$var1 = '.$var1);
dump('$var2 = '.$var2);

dump('-- ДО -------------');
dump('strlen($var1) = '.strlen($var1));
dump('strlen($var2) = '.strlen($var2));

mb_internal_encoding('utf8');

dump('-- ПОСЛЕ mb_internal_encoding(\'utf8\'); -------------');

dump('strlen($var1) = '.strlen($var1));
dump('strlen($var2) = '.strlen($var2));


dump('mb_strlen($var1) = '.mb_strlen($var1));
dump('mb_strlen($var2) = '.mb_strlen($var2));


function dump($var){

echo '<pre style="background:#fff !important; color:#505050 !important;">';
print_r($var);
echo '</pre>';
}
?>
Если в настройках не верно указаны настройки, то может получиться так

$var1 = String
$var2 = Строка
-- ДО -------------
strlen($var1) = 6
strlen($var2) = 12
-- ПОСЛЕ mb_internal_encoding('utf8'); -------------
strlen($var1) = 6
strlen($var2) = 12
mb_strlen($var1) = 6
mb_strlen($var2) = 6

Комментарии

Популярные сообщения