Krijg een error als ik de php versie omhoog zet.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Bas Driessen

Bas Driessen

26/06/2023 20:16:14
Quote Anchor link
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
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;

}


Krijg deze error

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


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
    $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.
 
PHP hulp

PHP hulp

03/12/2024 18:36:20
 
Adoptive Solution

Adoptive Solution

26/06/2023 21:02:08
Quote Anchor link
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
 
Bas Driessen

Bas Driessen

27/06/2023 11:10:25
Quote Anchor link
Bedankt AS,

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

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

wordt

$rgba = implode( ',', $rgb ) . ',' . $opacity;
 
- Ariën  -
Beheerder

- Ariën -

27/06/2023 11:12:38
Quote Anchor link
Geef het een poging :-)
 
Bas Driessen

Bas Driessen

27/06/2023 16:47:10
Quote Anchor link
Ja dus, sorry hoor, beetje een domme vraag van mij, maar ik vind dit echt lastig. Beiden bedankt.
 
- Ariën  -
Beheerder

- Ariën -

29/06/2023 23:46:12
Quote Anchor link
Maar is het gelukt?
 
Jan Koehoorn

Jan Koehoorn

01/07/2023 12:22:06
Quote Anchor link
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:

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 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
 
David Palmer

David Palmer

06/07/2023 07:02:26
Quote Anchor link
** spamknip **
Gewijzigd op 06/07/2023 08:52:51 door - Ariën -
 



Overzicht Reageren

 
 

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.