От шестнадцатеричного к декабрьскому до пользовательского RGB = не печатает цифру «0 (ноль)»

0

Как говорится в заголовке, вывод в конце не будет отображаться должным образом, если шестнадцатеричное значение содержит значение "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", значения ZERO (0) отсутствует, будучи разрезанным.

Кто-нибудь знает, как это исправить? Я проверил свои документы HTML и CSS, я не могу найти никакого объявления, которое, очевидно, удалит это значение во время вычисления.

Изменение: есть ли способ, поместив шестнадцатеричное значение в соответствующий цвет? :)

  • 0
    Можете ли вы привести пример того, что бы вывести значения 00 и 0X ? Когда я пытаюсь это, он пишет нули.
  • 0
    Попробуйте преобразовать «020255», и он должен вывести 025502, но это обрезает нули, поэтому конечный продукт будет «2552». Понял, что я имею в виду?
Показать ещё 1 комментарий
Теги:

1 ответ

0
Лучший ответ

Функция dechex не имеет нулевой dechex для шестнадцатеричной строки. Тебе придется это сделать самому.

Например:

$decRCALC = str_pad(dechex($r), 2, '0', STR_PAD_LEFT);
  • 0
    Большое спасибо! К сожалению, я не могу ответить на ваш пост - «Голосование требует 15 репутации».

Ещё вопросы

Сообщество Overcoder
Наверх
Меню