将lua十六进制函数转换为在PHP中使用
我所面临的问题是,我试图在不使用Base64的情况下通过lua环境的post请求发送图像。我正在使用此函数将数据更改为可以在post请求中发送的内容将lua十六进制函数转换为在PHP中使用,php,lua,Php,Lua,我所面临的问题是,我试图在不使用Base64的情况下通过lua环境的post请求发送图像。我正在使用此函数将数据更改为可以在post请求中发送的内容 function string.tohex(str) return str:gsub('.', function (c) return string.format('%02X', string.byte(c)) end) end 我可以用lua把它转换回来 function string.fromhex(str
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时返回的内容
但是我不知道如何在php中复制这个函数
编辑这是我在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
);
这里,
/
充当分隔符。PHP中的模式与lua中的模式有点不同!您还需要提供分隔符:
preg_replace_callback(
'/../',
function ($matches) {
return chr(intval($matches[0], 16));
},
$data
);
这里,
/
充当分隔符。您是否尝试过这样做?你尝试的东西有什么问题吗?我尝试编写的代码一无所获,我对php还比较陌生,我希望有人能给我指出正确的方向。你为什么要首先对它进行ASCII编码?这是一个邮寄请求。您可以发送二进制数据。发送原始字节。您是否尝试过这样做?你尝试的东西有什么问题吗?我尝试编写的代码一无所获,我对php还比较陌生,我希望有人能给我指出正确的方向。你为什么要首先对它进行ASCII编码?这是一个邮寄请求。您可以发送二进制数据。发送原始字节。