Форум → Программирование → 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 поддержку знаю. Матчасть - в курсе.
Пожалуйста, авторизуйтесь, чтобы написать комментарий!