如何在php中将多个Decimal值转换为十六进制


how to convert multiple Decimal values into Hexadecimal in php

嗨,我试着搜索了一下,但没有找到任何能准确帮助我的东西。请帮帮我,这是最后一件能帮助我的程序验证系统启动的事情。我正在尝试扫描用户的基本ID,现在BaseID存储在我的数据库中,我通过sql获取它,并从那里从我的程序中读取它(用Lua制作(。问题是我不能直接扫描4字节格式的BaseID,而是给出了太多结果。相反,如果我将其转换为十六进制形式,它工作得很好,我想在服务器上使用php将其转换为十六进制格式,所以一旦提取它,它就会被转换为十六x格式,所以我需要转换脚本的帮助,我无法在atm上完成,我使用

$BaseID = ''
$BaseIDHex = dechex($BaseID);
{
   echo $BaseIDHex;
}

它做了我需要的部分

假设我的BaseID是1234567890,它将输出为:499602D2但我想要这种形式:D2 02 96 49(倒置,中间有空格(


更新:在同一中添加了新问题

$BaseID  = '';
$BaseID  = $row1['field_12'];
$Addition = ' 00 00 00 00 00 00 00 00 00"';
$BaseIDHex = dechex($BaseID);
$result = '';
while(strlen($BaseIDHex) >=2){
    $result = strtoupper($result.substr($BaseIDHex, -2))." ";
    $BaseIDHex = substr($BaseIDHex, 0, strlen($BaseIDHex)-2);
}
echo 'check = "';
echo trim($result);
echo $Addition;

它给了我check = "B9 09 EE 00 00 00 00 00 00 00 00 00"

现在它工作得很好,我想在上面的代码中做一些更改,$BaseID是1号。15600057,但有时我在数据库中存储了多个ID,比如15600057,12600057。你知道我如何将它们转换为六进制字符串并以上面代码中显示的相同方式回显它们吗?所以它像这个一样与最终结果相呼应

check = "B9 09 EE 00 00 00 00 00 00 00 00 00"check1 = "C9 56 fe 00 00 00 00 00 00 00 00 00"??

这样做。。

$BaseID = '1234567890';
$BaseIDHex = dechex($BaseID);
echo $v = implode(' ',array_reverse(explode(' ',strtoupper(wordwrap($BaseIDHex, 2, " ", true)))));

演示

@Shankar Damodaran的代码看起来更干净(+1(,但我仍然想发布我的版本

$BaseID = '1234567890';
$BaseIDHex = dechex($BaseID);
$result = '';
while(strlen($BaseIDHex) >=2){
    $result = strtoupper($result.substr($BaseIDHex, -2))." ";
    $BaseIDHex = substr($BaseIDHex, 0, strlen($BaseIDHex)-2);
}
echo trim($result);