Преобразование строки, начинающейся с 0x8950, в допустимый PNG

У меня есть длинная строка (60 000+ символов), которая начинается следующим образом...

0x89504E470D0A1A0A0000000D494844520 ....

Я знаю, что эта строка представляет собой PNG, я вижу, что magic number на странице PNG в Википедии — это 89 50 4e 47 0d 0a 1a 0a, и это соответствует началу моей строки.

Если я просто запишу всю свою строку в файл, я не смогу просмотреть PNG. Я знаю, что мне нужно что-то сделать со строкой, прежде чем она станет действительным файлом PNG. Моя проблема в том, что я не знаю терминологии для формата строки в том виде, в котором она есть сейчас, и я не знаю правильного слова для описания формата, который я ищу. Это мешает мне выполнять какой-либо продуктивный поиск!

Как называется функция PHP, через которую мне нужно запустить строку, прежде чем я смогу записать файл .png?


person Chris    schedule 08.01.2019    source источник


Ответы (1)


В случае, если это поможет кому-то еще, как говорится в комментариях выше, функция PHP hex2bin

Первоначально я получил сообщение об ошибке:

Warning: hex2bin(): Input string must be hexadecimal string

Затем я удалил первые два символа из моей строки, 0x, и тогда преобразование сработало отлично:

$str = substr($str, 2);
$str = hex2bin($str);   
person Chris    schedule 08.01.2019