Krijg een error als ik de php versie omhoog zet.
Code (php)
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
37
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
37
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;
}
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
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.
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?
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:
Code (php)
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
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 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);
?>
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.
Gewijzigd op 01/07/2023 12:23:25 door Jan Koehoorn
Gewijzigd op 06/07/2023 08:52:51 door - Ariën -