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.
De eerste regel van de description vertelt hoe het moet.
Effe de argumenten in implode omdraaien.
https://www.php.net/manual/en/function.implode.php
Effe de argumenten in implode omdraaien.
https://www.php.net/manual/en/function.implode.php
Bedankt AS,
Ik voel me echt heel dom, maar bedoel je dan:
$rgba = implode( $rgb, ',' ) . ',' . $opacity;
wordt
$rgba = implode( ',', $rgb ) . ',' . $opacity;
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:
Laat maar weten als er onderdelen zijn die je niet begrijpt, dan helpen we je graag.
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
** spamknip **
Gewijzigd op 06/07/2023 08:52:51 door - Ariën -




