如何在PHP中解析base64_encode()的Json结果

如何在PHP中解析base64_encode()的Json结果,php,arrays,json,laravel,base64,Php,Arrays,Json,Laravel,Base64,我编写了一个php脚本,使用base64_解码函数对值进行解码。我想将解析结果存储到不同的变量中。我如何做到这一点 $str = 'eyJ0eXAiO0IjoiNTAwMCIsInZhbGlkaXR5IjoiMzAifQjdubnmGHANidodnd'; $msisdn_64 = base64_decode($msisdn); print_r($msisdn_64); 注意:出于隐私考虑,$str变量包含伪值,并且不使用令牌进行解码 上述代码输出: {typ:JWT,alg:HS256

我编写了一个php脚本,使用base64_解码函数对值进行解码。我想将解析结果存储到不同的变量中。我如何做到这一点

 $str = 'eyJ0eXAiO0IjoiNTAwMCIsInZhbGlkaXR5IjoiMzAifQjdubnmGHANidodnd';
 $msisdn_64 = base64_decode($msisdn);
 print_r($msisdn_64);
注意:出于隐私考虑,$str变量包含伪值,并且不使用令牌进行解码

上述代码输出:

{typ:JWT,alg:HS256}{sub:45656685455,service:000,created:20010809,act,iss:Acft,exp:false,amount:000,validity:30}�.'���A˕X=·&|�L�0�����


我在第二个对象中尝试了$msisdn[1]->sub、$msisdn[0]->sub和$msisdn->sub这样的值,但它不起作用。请提供帮助

您可以使用json_解码功能

例如:

<?php
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';

var_dump(json_decode($json));
var_dump(json_decode($json, true));

?>
在这里,您需要像下面一样再次解码字符串

$str = 'eyJ0eXAiO0IjoiNTAwMCIsInZhbGlkaXR5IjoiMzAifQjdubnmGHANidodnd';
$msisdn_64 = json_decode(base64_decode($msisdn),true);
print_r($msisdn_64);

记住在json_decode方法中输入参数true,因为它以关联数组的形式返回结果。

问题在于它实际上是一个base64编码的字符串。。。如何使用base64格式对其进行解码并将其中的数据解析为不同的变量$msisdn_64不包含有效的JSON。不仅两个或多个JSON对象看起来混在一起,还有尾随的二进制垃圾。没有现成的方法可以正确解析它。因此,我需要修复此可能的Base64副本decode please…..使用JWT库指定的格式是Base64。@Andre然后使用JWT库解析此…?!请推荐一款我们这里不推荐第三方软件。你救了我的命:
$str = 'eyJ0eXAiO0IjoiNTAwMCIsInZhbGlkaXR5IjoiMzAifQjdubnmGHANidodnd';
$msisdn_64 = json_decode(base64_decode($msisdn),true);
print_r($msisdn_64);