Проблема, с которой я столкнулся, заключается в том, что я пытаюсь отправить изображение через запрос на отправку из среды lua без использования Base64. Я использую эту функцию для изменения данных на то, что я могу отправить в почтовом запросе.
function string.tohex(str)
return str:gsub('.', function (c)
return string.format('%02X', string.byte(c))
end)
end
Я могу преобразовать его обратно просто отлично, используя lua.
function string.fromhex(str)
return str:gsub('..', function (cc)
return string.char(tonumber(cc, 16))
end)
end
Для справки это то, что возвращает string.tohex, когда я передаю изображение на него pastebin.com/4t3LdZWP
Но то, что я не могу понять, как это сделать, - это повторить эту функцию в php.
edit Это то, что я пробовал делать в php, чтобы преобразовать его обратно
preg_replace_callback(
'..',
function ($matches) {
return chr(intval($matches[0], 16));
},
$data
);
Шаблоны в PHP немного отличаются от шаблонов lua! Вам также необходимо предоставить разделители:
preg_replace_callback(
'/../',
function ($matches) {
return chr(intval($matches[0], 16));
},
$data
);
Здесь /
действует как разделитель.