Делаю так PHP: <?php var_dump(pack('n*',1,2)); В мануале написано, что эта функция должна возвращать бинарную строку, те что-то типа этого '0000 0001' У меня возвращает это http://prntscr.com/perm35 http://prntscr.com/permc1 Что я делаю не так ?
наверное все же utf8 и ascii это кодировки, а не представление в двоичном коде а то что нужно - PHP: $var = pack(.....); echo printf('%b',$var);
miketomlin если не сложно объясни что такое short тип у этой функции ? Вот я взял пример со страницы мануала PHP: <?php $binarydata = pack("nvc*", 0x1234, 0x5678, 65, 66); ?> В мануале написано это должно возвращать такую последовательность байтов 0x12, 0x34, 0x78, 0x56, 0x41, 0x42 Он у меня возвращает вот что http://prntscr.com/pev5k7 Почему в мануале написано что возвращает числа, а у меня возвращает символы ASCII соответствующие этим числам. Это браузер их преобразовал или это pack() на самом деле возвращает их так, а не так, как в примере ? Не понятно когда я пытаюсь передать аргументом символ PHP: <?php var_dump(pack("n", 'a')); Он уже возвращает мне это http://prntscr.com/pevgl5 http://prntscr.com/pevgqk Таких символов в ASCII нету Ещё не понятно что такое HEX-строка.
@machetero, она возвращает не символы, а последовательность байт. Так что всё правильно. В мануале дали шестнадцатиричное представление для удобочтения человеком. Это строковое представление, а не двоичное. Опять же, для нашего удобства. Машина работает с битами и байтами, которые и возвращает функция.
mkramer в мануале написано строка, вот я и не понимал. Те short и long - это двоичные данные. Но я так понял эта функция может ещё возвращать и строки, hex-строки какие-то, символы и числа. Это остальные форматы. Правильно я понял ?
-- Она и возвращает. А вот какого фига ты ЭТО выводишь и надеешься увидеть что-то вменяемое, ХЗ. Сделай, например, 0x2121, 0x2121 – это вроде восклицательные знаки. Короче таблица ASCII в помощь --- Добавлено --- См., что понимается в пыхе под строками. --- Добавлено --- pack нужна, чтобы «паковать» отдельные значения полей в бинарную структуру.
@machetero, строка для php - это не только что-то, что ты можешь прочитать. PHP: $str = file_get_contents("http://example.com/picture.png"); Это тоже строка. Хотя если ты сделаешь echo $str, то увидишь непонятные символы (ну если только бразуеру заголовок, что сейчас будет картинка, не передашь)