转换lua hex函数以在PHP中使用

时间:2015-08-27 23:41:37

标签: php lua

我面临的问题是我试图通过lua环境中的post请求发送图像而不使用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中复制这个功能。

编辑这是我在php中尝试将其转换回来的原因

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

1 个答案:

答案 0 :(得分:0)

PHP中的模式与lua的模式略有不同!您还需要提供分隔符:

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

此处,/充当分隔符。