function corporate_hex_to_rgba( $colour, $opacity ) {

	if ( '#' === $colour[0] ) {

		$colour = substr( $colour, 1 );

	}

	if ( strlen( $colour ) === 6 ) {

		list( $r, $g, $b ) = array( $colour[0] . $colour[1], $colour[2] . $colour[3], $colour[4] . $colour[5] );

	} elseif ( strlen( $colour ) === 3 ) {

		list( $r, $g, $b ) = array( $colour[0] . $colour[0], $colour[1] . $colour[1], $colour[2] . $colour[2] );

	} else {

		return false;

	}

	$r = hexdec( $r );
	$g = hexdec( $g );
	$b = hexdec( $b );

	$rgb = array(
		'red'   => $r,
		'green' => $g,
		'blue'  => $b,
	);

	$rgba = implode( $rgb, ',' ) . ',' . $opacity;

	return $rgba;

}


Krijg deze error

Uncaught TypeError: implode(): Argument #2 ($array) must be of type ?array, string given in line 317


	$rgba = implode( $rgb, ',' ) . ',' . $opacity;


Ik probeer hier wijs uit te worden. Ik moet iets doen met de array denk ik. Maar heel eerlijk het gaat me boven mijn pet. Als iemand mij hiermee op weg kan helpen, zou ik dat waarderen.
Bedankt AS,

Ik voel me echt heel dom, maar bedoel je dan:

$rgba = implode( $rgb, ',' ) . ',' . $opacity;

wordt

$rgba = implode( ',', $rgb ) . ',' . $opacity;
Geef het een poging :-)
Ja dus, sorry hoor, beetje een domme vraag van mij, maar ik vind dit echt lastig. Beiden bedankt.
Maar is het gelukt?
Aangezien je dit nog lastig vindt, heb ik je functie wat herschreven, bij wijze van studiemateriaal.

Er zit error-checking op de argumenten, iets wat je echt niet weg kunt laten, en de opzet is iets bondiger. Er zit een (niet heel uitgebreide) error-melding in, die je zelf nog aan zou kunnen passen:


<?php

function corporate_hex_to_rgba($colour, $opacity = 1)
{
    if (preg_match('/^\#?([a-fA-F0-9]{3}|[a-fA-F0-9]{6})$/', $colour)) {
        if ($opacity >= 0 && $opacity <= 1) {
            $colour = trim($colour, '#');

            if (strlen($colour) === 3) {
                $colour = $colour[0] . $colour[0] . $colour[1] . $colour[1] . $colour[2] . $colour[2];
            }

            $r = hexdec(substr($colour, 0, 2));
            $g = hexdec(substr($colour, 2, 2));
            $b = hexdec(substr($colour, 4, 2));

            return sprintf('rgba(%d, %d, %d, %f)', $r, $g, $b, $opacity);
        }
    }

    echo 'Wrong colour format';

    return false;
}


// usage examples:
echo '<br>';
echo corporate_hex_to_rgba('#123456');
echo '<br>';
echo corporate_hex_to_rgba('#123456', 0.5);
echo '<br>';
echo corporate_hex_to_rgba('#123', 0.5);
echo '<br>';
echo corporate_hex_to_rgba('#1234', 0.25);
?>


Laat maar weten als er onderdelen zijn die je niet begrijpt, dan helpen we je graag.
** spamknip **

Reageren