Преобразование шестнадцатеричной функции lua для использования в переполнении стека

Проблема, с которой я сталкиваюсь, заключается в том, что я пытаюсь отправить изображение через почтовый запрос из среды lua без использования Base64. Я использую эту функцию, чтобы изменить данные на что-то, что я могу отправить в почтовом запросе.

function string.tohex(str)
return str:gsub('.', function (c)
return string.format('%02X', string.byte(c))
end)
end

Я могу преобразовать его обратно очень хорошо в Луа, используя.

function string.fromhex(str)
return str:gsub('..', function (cc)
return string.char(tonumber(cc, 16))
end)
end

Для справки вот что возвращает string.tohex, когда я передаю ему изображение pastebin.com/4t3LdZWP

Но что я не могу понять, как это сделать, это повторить эту функцию в PHP.

Это то, что я пытался сделать в php, чтобы преобразовать его обратно.

preg_replace_callback(
'..',
function ($matches) {
return chr(intval($matches[0], 16));
},
$data
);

1

Решение

Шаблоны в PHP немного отличаются от шаблонов lua! Вы также должны указать разделители:

preg_replace_callback(
'/../',
function ($matches) {
return chr(intval($matches[0], 16));
},
$data
);

Вот, / действует как разделитель.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]