Script PHP de convertire HEX in RGB

iNoob | Stefanescu Mihai | 2020-10-11

Convertirea culorilor din sistemul HEX  in sistemul RGB este necesara in diverse cazuri pentru a asigura functionarea corecta a site-ului tau.

function hex2rgb($hex) {
   $hex = str_replace("#", "", $hex);

   if(strlen($hex) == 3) {
      $r = hexdec(substr($hex,0,1).substr($hex,0,1));
      $g = hexdec(substr($hex,1,1).substr($hex,1,1));
      $b = hexdec(substr($hex,2,1).substr($hex,2,1));
   } else {
      $r = hexdec(substr($hex,0,2));
      $g = hexdec(substr($hex,2,2));
      $b = hexdec(substr($hex,4,2));
   }
   $rgb = array($r, $g, $b);
   //return implode(",", $rgb); // returns the rgb values separated by commas
   return $rgb; // returns an array with the rgb values
}

Aceasta functie functioneaza la fel de bine si cu codurile HEX prescuratate (#f00) cat si cu cele complete (#ff0000). Accepta si semnul de inceput (#). Se poate observa ca avem doua linii de returnare la sfarsit-ul functiei. Prima, ce-a comentata, returneaza valorile RGB separate de virgula. A doua, ce-a standard va returna unarray cu valorile RGB.

Avand aceasta functie o putem folosi in felul urmator:

$rgb = hex2rgb("#cc0");
print_r($rgb);

Functia de mai sus va afisa:

Array ( [0] => 204 [1] => 204 [2] => 0 )

Daca tot convertim codurile HEX  in RGB, de ce sa nu convertim si RGB in HEX?

function rgb2hex($rgb) {
   $hex = "#";
   $hex .= str_pad(dechex($rgb[0]), 2, "0", STR_PAD_LEFT);
   $hex .= str_pad(dechex($rgb[1]), 2, "0", STR_PAD_LEFT);
   $hex .= str_pad(dechex($rgb[2]), 2, "0", STR_PAD_LEFT);

   return $hex; // returns the hex value including the number sign (#)
}

Aceasta va functiona in felul urmator:

$rgb = array( 255, 255, 255 );
$hex = rgb2hex($rgb);
echo $hex;

Si va afisa:

#fffff

 


Imi place ce faci aici
Daca iti place ce fac aici imi poti cumpara o cafea Buy Me a Coffee at ko-fi.com

Stefanescu Mihai
Programator de ~8 ani, am lucrat la proiecte din mai multe industrstrii, de la eCommerce la telecomunicatii la automatizari. In acest timp am folosi diferite tehnologii, de la PHP, MySQL, PostgreSql, RabbitMq, Redis, Memcached si altele.
       

Get in touch
Pentru nelamuriri, dubii, comentarii si chestii de pe suflet ne putem auzi pe Discord, Reddit sau poti deschide o discutie noua pe forum.

Posteaza un comentariu

Comentarii

Inca nu au fost postate comentarii, fii primul care posteaza un comentariu!

Club-ul este dedicat membrilor si ofera access la mai multe zone ale website-ului.

🗝ïļ Login 🌟 Register

🔖 Bookmarks ⊞
âœĻ Pentru a sustine aceasta comunitate am sa te rog sa te autentifici sau sa te inregistrezi!

🌊ïļ Discord ⊞

Folosim cookie-uri pentru a oferi functionalitatile critice ale aplicatiei Invata-Programare. Folosim cookie-uri si pentru a analiza traficul, pentru care e nevoie de consimtamantul dvs. explicit.

⮆ïļ