繁体   English   中英

在PHP中格式化十六进制字符串

[英]Format Hexadecimal String in PHP

我有这个字符串

0A

要么

A001

要么

AC000001

我需要这样的最终格式,无论数字1,2,3甚至是6位数字。

00-00-00-01

有什么想法可以在PHP中实现吗?

您可以尝试这样的事情:

<?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个字符长。

填充后,字符串将被分成两个字符,每组两个字符,然后中间用连字符连起来。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM