Hex naar RGB

Door Eris -, 20 jaar geleden, 6.818x bekeken

Zet hexdecimale kleurcodes om naar de rgb versie. Toe lichting niet echt nodig.

Op vragen kan doormiddel van:
getrgb($_GET['color']);

Voorbeeld: http://phphulp.phpclub.nl/205.php

Gesponsorde koppelingen

PHP script bestanden

  1. hex-naar-rgb

 

Er zijn 7 reacties op 'Hex naar rgb'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Robbert
Robbert
20 jaar geleden
 
0 +1 -0 -1
Ziet er leuk uit...

misschien kan je er een klein vakje bij maken welke kleur ze hebben opgegeven...
en als je dan echt tijd hebt dan ook de kleur per kleur (dus Rood, Geel, Blauw)

Succes verder...
Eris -
Eris -
20 jaar geleden
 
0 +1 -0 -1
Zit alleen een klein foutje in als 0 invult :)
Eris -
Eris -
20 jaar geleden
 
0 +1 -0 -1
Was makkelijkr dan ik dacht :)
Vincent elschot
vincent elschot
20 jaar geleden
 
0 +1 -0 -1
Paar puntjes;
- waarom preg_split() op een leeg patroon? Je kunt de tekens van een string gewoon rechtstreeks aanspreken met {}
- waarom maak je de $char array als je elk element daarvan precies 1 keer gebruikt?
- Waarom heet dat ding $char als er hexwaardes van de kleuren in staan?
- Waarom controleer je met empty() of $_GET['color'] is bestaat? als je daar '1' invult bestaathij al dus je moet controleren of er een string van zes-tekens in staat.

En dan kom je op dit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?php
function getRGB($psHexColorString)
{

  // Begint de string met een #?
  if ($psHexColorString{0}=='#')
  {

    // knip dat er dan af
    $psHexColorString = substr($psHexColorString, 1);
  }

  $aColors['red']   = hexdec($psHexColorString{0}.$psHexColorString{1});
  $aColors['green'] = hexdec($psHexColorString{2}.$psHexColorString{3});
  $aColors['blue']  = hexdec($psHexColorString{4}.$psHexColorString{5});
  return $aColors;
}


if(!empty($_GET['color']))
{

  // Is het wel een geldige kleuren string?
  if (preg_match('/^#{0,1}[abcdef0-9]{6}$/i', trim($_GET['color'])))
  {

    $aColors = getRGB($_GET['color']);
    echo $_GET['color']." geeft een RGB kleur van Red:".$aColors['red'].", Green:".$aColors['green']." en Blue:".$aColors['blue'];
  }

  else
  {
    echo $_GET['color'].' is geen geldige kleur in hex waardes.';
  }
}

else
{
  echo '<form action='.$_SERVER["PHP_SELF"].' method="get">
        Kleur:<input type="text" name="color" value="#">
        <input type="submit" value="Get RBG Code">
        </form>'
;
}

?>


19 jaar geleden
 
0 +1 -0 -1
@vincent:
- waarom gebruik je regular expressions als je ctype_xdigit hebt?
- en een foreach loop waar nodig?

Mijn oplossing:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
function hex2rgb($Hex)
{

    if (!ctype_xdigit($Hex) || strlen($Hex) != 6) return false;
    foreach (str_split($Hex, 2) as $H) $Dec[] = hexdec($H);
    return $Dec;
}


if (isSet ($_GET['color']) && false !== (list($R, $G, $B) = hex2rgb($_GET['color']{0} == '#' ? substr($_GET['color'], 1) : $_GET['color'])))
{

    echo "Rood: {$R} <br/> Groen: {$G} <br/> Blauw: {$B}";
}

else
{
    echo "Geen kleur opgegeven";
}

?>

<form action='
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?=$_SERVER["PHP_SELF"]?>
' method="get">
Kleur:<input type="text" name="color" value="">
<input type="submit" value="Get RBG Code">
</form>


19 jaar geleden
 
0 +1 -0 -1
There's a mistake in the function:

$char[0] = $chars[1].$chars[2];
$char[1] = $chars[3].$chars[4];
$char[2] = $chars[5].$chars[6];


should look like that:

$char[0] = $chars[0].$chars[1];
$char[1] = $chars[2].$chars[3];
$char[2] = $chars[4].$chars[5];
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
SerpenT
SerpenT
19 jaar geleden
 
0 +1 -0 -1
no thats not a mistake cause the variable that has been given starts with an "#" so its the second character that is the first number that you have to count.:P

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. hex-naar-rgb

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.