Ich habe einen base64 string:PHP base64_decode kehrt hex oder NULL
AgAAOwEwMzEyMTMwMDAwMDAwOTA0QG5haS5lcGMubW5jMTMwLm1jYzMxMi4zZ3BwbmV0d29yay5vcmc=
ich den rohen base64 nehmen kann, kopieren und einfügen und durch bash base64 -d laufen oder php_decode()
und es funktioniert. Aber wenn ich die Variable aus einem Post mit file_get_contents ('php: // input') in PHP ergreife, wird es nicht funktionieren. Allerdings kann ich den JSON-codierten Post unter Verwendung von error_log()
protokollieren und dort das Formular kopieren und einfügen, und es funktioniert. Ich kann den Base64-Wert wiedergeben und alles erscheint normal. Aber sobald ich base64_decode um die Zeichenfolge wickle, erhalte ich Fehler. Wenn es darauf ankommt, sind die ersten zwei Zeichen der dekodierten Zeichenfolge "; 0". Ich dachte, dass möglicherweise verursacht PHP sein hex?
Entschuldigung für den unordentlichen Debug-Code, aber das sollte einige Beispiele veranschaulichen.
$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));
ich diese Ausgabe:
Typ: string
0 roh: |AgAAOwEwMzEyMTMwMDAwMDAwOTA0QG5haS5lcGMubW5jMTMwLm1jYzMxMi4zZ3BwbmV0d29yay5vcmc=|
0 decodiert: \ x02
0 rohen Teilnummer: AgAAOwEwMzEyMTMwMDAwMDAwOTA0QG5haS5lcGMubW5jMTMwLm1jYzMxMi4zZ3BwbmV0d29yay5vcmc=
Array \ n (\ n [0] => \ x02