Форум → Программирование → PHP для идиотов → строка как последовательность байтов.
строка как последовательность байтов.
-
-
23 августа 2009 г. 0:06, спустя 2 дня 10 часов 3 минуты
Что-то типа того должно быть… только с юникодом не знаю как будет себя вести$length = strlen($str); for ($i=0; $i < $length; $i++) { $tmp = dechex(ord(substr($str, $i, 1))); if (strlen($tmp) == 1) $tmp = "0".$tmp; // добавляем ведущий ноль, если нужно $hex .= $tmp; }
-
23 августа 2009 г. 0:23, спустя 16 минут 5 секунд
KENDO, какой ужас =))
$str = "авбгдежзи ..";
$hexstr = str_replace("%","",urlencode($str));Спустя 6 сек.нанах в хеадСапожник без сапог -
23 августа 2009 г. 0:38, спустя 15 минут 51 секунду
Я так из файла читал года два назад. Повторное использование кода, да…
А вообще, [man]urlencode[/man] говорит нам:Returns a string in which all non-alphanumeric characters except -_. have been replaced with a percent (%) sign…
т.е.символы "-_." останутся :pСпустя 168 сек.Ну лан… продолжаю идею дуда, можно извратиться$str = "авбгдежзи .."; $hexstr = str_replace("%","",urlencode($str)); $hexstr = str_replace("-","код тире",$str)); $hexstr = str_replace("_","код underscape",$str)); $hexstr = str_replace(".","код точки",$str));
-
23 августа 2009 г. 0:42, спустя 3 минуты 51 секунду
KENDO, а ну про инглишь я забыл конечно, сори я спизделСапожник без сапог -
27 августа 2009 г. 14:54, спустя 4 дня 14 часов 11 минут
а че bin2hex не рулит? Мне он вроде нормальную последовательность выдает =) -
27 августа 2009 г. 15:09, спустя 14 минут 53 секунды
<?php $str = 'Говно вопрос'; for ($i = 0, $n = strlen($str); $i < $n; ++$i) { $byte = substr($str, $i, 1); echo ord($byte).' '; }
в случае win-1251
195 238 226 237 238 32 226 238 239 240 238 241
в случае utf-8
208 147 208 190 208 178 208 189 208 190 32 208 178 208 190 208 191 209 128 208 190 209 129Спустя 196 сек.ну или так:<?php $str = 'Говно вопрос'; for ($i = 0, $n = strlen($str); $i < $n; ++$i) { $byte = substr($str, $i, 1); printf('%02x ', ord($byte)); } echo "<br />\n".bin2hex($str);
ιιlllιlllι унц-унц -
27 августа 2009 г. 15:09, спустя 5 секунд
ага, а потом надо в шестнадцатиричную систему счисления перевести :) -
27 августа 2009 г. 15:27, спустя 18 минут 18 секунд
ты хорошо видишь?
или вот так<?php $str = 'Говно вопрос'; foreach (str_split($str) as $byte) printf('%02x ', ord($byte));
вобщем учи матчасть - большая часть функций php НЕмультибайтная, тебе только на рукуιιlllιlllι унц-унц -
27 августа 2009 г. 16:12, спустя 44 минуты 38 секунд
Ты отредактировал пост раньше чем я запостил.
Про MB поддержку знаю. Матчасть - в курсе.
Пожалуйста, авторизуйтесь, чтобы написать комментарий!