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

1

Проблема, с которой я столкнулся, заключается в том, что я пытаюсь отправить изображение через запрос на отправку из среды 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
);
  • 2
    Вы пытались это сделать? Что не так с тем, что вы пытались?
  • 0
    Я ничего не мог получить с кодом, который пытался написать, я все еще относительно новичок в php, и я надеялся, что кто-то может указать мне правильное направление.
Показать ещё 1 комментарий
Теги:
lua

1 ответ

0

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

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню