When I do this $payload2 =  base64_encode($payload); I will get message “Expected type : string” so I change to $payload2 =  base64_encode((string)$payload); but I will get the “Warning: Array to string conversion” error. How to solve this error?
$header = array(
            "alg" => "HS256",
            "typ" => "JWT", 
            );
$header2 =  base64_encode((string)$header);
Solution of using json_encode:
$header =json_encode(['typ' => 'JWT', 'alg' => 'HS256']); $base64UrlHeader = str_replace(['+', '/', '='], ['-', '_', ''], base64_encode($header));
Advertisement
Answer
Solved by using implode()
$header = array(
            "alg" => "HS256",
            "typ" => "JWT", 
            );
$header2 = implode("",$header);
$header3 =  base64_encode($header2);