"00" becomes "0" in the PHP function, but for RGB to work, it must be "00". How?

This PHP RGB brightness change function works partially:

enter image description here

It skips one zero “0” at the end: it should be “00”. How to solve this?

$color = "#a7a709"; // constant $color1 = brightness($color,+25); // brighter, echoes #c0c022, correct RGB value $color2 = brightness($color,-25); // darker echoes #8e8e0, incorrect RGB value!! 

How to fix it? Really appreciate!

Function brightness ();

 ### CREDITS go to Cusimar9 who wrote this function brightness($colourstr, $steps) { $colourstr = str_replace('#','',$colourstr); $rhex = substr($colourstr,0,2); $ghex = substr($colourstr,2,2); $bhex = substr($colourstr,4,2); $r = hexdec($rhex); $g = hexdec($ghex); $b = hexdec($bhex); $r = max(0,min(255,$r + $steps)); $g = max(0,min(255,$g + $steps)); $b = max(0,min(255,$b + $steps)); return '#'.dechex($r).dechex($g).dechex($b); } 
+4
source share
2 answers
 return sprintf("#%02x%02x%02x", $r, $g, $b); 
+8
source

This was discussed here in the comments:

http://php.net/manual/en/function.dechex.php

wrap each of r, g, b in a zfill / zeropad function.

+1
source

Source: https://habr.com/ru/post/1342378/


All Articles