我有一个base64字符串:PHP BASE64_DECODE将返回十六进制或NULL
AgAAOwEwMzEyMTMwMDAwMDAwOTA0QG5haS5lcGMubW5jMTMwLm1jYzMxMi4zZ3BwbmV0d29yay5vcmc=
我可以把原始的base64,复制和粘贴,并通过bash的的base64 -d或php_decode()
运行它,它的工作原理。但是,当我在PHP中使用file_get_contents('php:// input')在PHP中获取变量时,它无法工作。不过,我可以使用error_log()
登录JSON编码的帖子,并在那里复制和粘贴表单,它可以工作。我可以回显base64的值,一切都正常。但只要我围绕字符串包装base64_decode,就会出错。如果重要,解码后的字符串的前两个字符是“; 0”。我想可能这可能导致PHP采取其十六进制?
对不起,调试代码乱,但这应该说明一些例子。
$sub_id = get_field($json[$i], "subscriber-id", "null");
error_log("type: " . gettype($sub_id));
error_log("$i raw: |$sub_id|");
$decoded = base64_decode($sub_id);
error_log("$i decoded: $decoded");
error_log("$i raw sub-id: " . $sub_id);
$iccid_a = array();
$raw_sub_id = $sub_id;
$ret = exec("echo \"$raw_sub_id\" | base64 -d ",$iccid_a);
error_log(print_r($iccid_a,1));
我得到这样的输出:
类型:字符串
0原料:|AgAAOwEwMzEyMTMwMDAwMDAwOTA0QG5haS5lcGMubW5jMTMwLm1jYzMxMi4zZ3BwbmV0d29yay5vcmc=|
0解码:\ X02
0裸子ID:AgAAOwEwMzEyMTMwMDAwMDAwOTA0QG5haS5lcGMubW5jMTMwLm1jYzMxMi4zZ3BwbmV0d29yay5vcmc=
Array \ n(\ n [0] => \ x02