十六进制到十进制到自定义 RGB = 不打印数字“0(零)”


Hex To Dec To Custom RGB = Does not print the figure "0 (zero)"

正如标题所说,如果十六进制值包含"0X"或"00"值,则末尾的输出将无法正确显示。有谁知道它的解决方法?(我正在学习PHP,所以请更详细,而不是简短的解释)。

<div id="hex_rgb_calc">
        <form action="" method="post">
        <input type="text" name="Hex" value="#"><br>
        <input type="submit" name="submit" value="CALCULATE">
    <?php
        if(isset($_POST['Hex']))
        {
            $hex = $_POST['Hex'];
            list($r, $g, $b) = sscanf($hex, "#%02x%02x%02x");
            $decRCALC = (dechex($r));
            $decGCALC = (dechex($g));
            $decBCALC = (dechex($b));
            $decRCALC = strtoupper($decRCALC);
            $decGCALC = strtoupper($decGCALC);
            $decBCALC = strtoupper($decBCALC);
    ?>
            <div id="separator">
            </div>
    <?php   
            echo "<br>1. Input: <br>$hex<br>";
            echo "<br>2. Output (Dec): <br>$r $g $b<br>";
            echo "<br>3. Custom (GB>R): <br>$decGCALC$decBCALC$decRCALC<br>";
        }
    ?>
</div>

举个例子:

输入十六进制"020255"并将其转换为我需要的十六进制设置(在本例中为 GBR,而不是 RGB)应将其输出为值"025502",但实际输出为"2552",缺少零 (0) 值,正在切割。

有谁知道如何解决这个问题?我检查了我的 HTML 和 CSS 文档,我找不到任何类型的声明,这些声明会在计算过程中明显删除该值。

编辑:有没有办法以相应的颜色显示十六进制值? :)

dechex 函数不会将十六进制字符串归零。 你必须自己做。

例如:

$decRCALC = str_pad(dechex($r), 2, '0', STR_PAD_LEFT);