在PHP

时间:2015-12-03 07:22:11

标签: php format hex

我有这个字符串

0A

或者

A001

或者

AC000001

我需要最终格式,无论是1,2,3号还是6位数。

00-00-00-01

在PHP中有任何想法吗?

1 个答案:

答案 0 :(得分:1)

您可以尝试这样的事情:

<?php
    $hexstring = "0A";

    //Pad string to correct lenght "0A" = "0000000A".
    $hexstring = str_pad($hexstring, 8, "0", STR_PAD_LEFT);

    //Split into groups of two. ["00","00","00","0A"].      
    $hexstring = str_split($hexstring, 2);

    //Merge together with hyphens. "00-00-00-0A".
    $hexstring = implode("-", $hexstring);
?>

此代码也可以简化为:

<?php
    $hexstring = "0A";
    $hexstring = implode("-", str_split(str_pad($hexstring, 8, "0", STR_PAD_LEFT), 2));
?>

此代码首先将传入的字符串填充到正确的长度。因此,无论字符串是1,2,3,4,5,6,7还是8个字符,它都将用零填充,以便恰好变为8个字符。

填充后,字符串将被分成两组,每组两个字符,然后连接在一起,连接在一起。