PHP: создать файл из шестнадцатеричной строки

#php #string #file #hex

#php #строка #файл #шестнадцатеричный

Вопрос:

У меня есть содержимое файла, представленное в виде шестнадцатой строки, и я хочу воссоздать этот файл из этой шестнадцатой строки. Как я могу это сделать?

Дополнительная информация
Шестнадцатеричная строка взята из записей кэша памяти Firefox, таких как приведенная ниже:

 about:cache-entry?client=HTTPamp;sb=1amp;key=http://www.google.co.uk/images/nav_logo40.png
  

Я обрабатываю <pre> элемент из этих записей, чтобы извлечь и объединить шестнадцатеричные значения. Итак, из приведенной ниже строки вывода данных, полученной из записи кэша:

 00000000:  89  50  4e  47  0d  0a  1a  0a  00  00  00  0d  49  48  44  52  .PNG........IHDR
  

Я создаю это

 89504e470d0a1a0a0000000d49484452
  

Я повторяю один и тот же процесс для каждой строки, так что в итоге получается 1 большая строка, содержащая все объединенные шестнадцатеричные значения.

Комментарии:

1. Разверните свой вопрос. Что было «шестнадцатеричным»? Вы говорите о кодировании двоичных значений файла или о чем-то другом?

2. пожалуйста, ознакомьтесь с дополнительной информацией

3. Вы можете использовать этот небольшой скрипт для извлечения записей кэша Firefox и chrome.

Ответ №1:

Вы можете использовать pack :

 file_put_contents($filename, pack('H*', $hex));
  

Это превратит строку октетов в шестнадцатеричной системе счисления в двоичную:

 var_dump(pack('H*', '313233'));  // string(3) "123"
  

Комментарии:

1. Я тестировал ваш метод, но он не работает. Не могли бы вы, пожалуйста, пересмотреть мой вопрос с учетом того, что я добавил в дополнительную информацию ?

2. Действительно, это так. Моя ошибка. Мой скрипт не получал шестнадцатеричный вывод должным образом. Теперь все исправлено 🙂