base64_decode

(PHP 4, PHP 5, PHP 7, PHP 8)

base64_decodeDekodiert MIME base64-kodierte Daten

Beschreibung

base64_decode(string $string, bool $strict = false): string|false

Dekodiert base64-kodierte Daten, die in string übergeben wurden.

Parameter-Liste

string

Die zu dekodierenden Daten.

strict

Ist der strict-Parameter gleich true, dann gibt die base64_decode()-Funktion false zurück, wenn die Eingabe Zeichen enthält, die nicht im Base64-Alphabet vorkommen. Andernfalls werden ungültige Zeichen stillschweigend ausgesondert.

Rückgabewerte

Gibt die dekodierten Daten zurück. Bei einem Fehler wird false zurückgegeben. Die zurückgegebenen Daten können in Binärform vorliegen.

Beispiele

Beispiel #1 base64_decode()-Beispiel

<?php
$str
= 'RGllcyBpc3QgZWluIHp1IGtvZGllcmVuZGVyIFN0cmluZw==';
echo
base64_decode($str);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Dies ist ein zu kodierender String

Siehe auch

add a note

User Contributed Notes 5 notes

up
72
winkelnkemper at googlemail dot com
14 years ago
If you want to save data that is derived from a Javascript canvas.toDataURL() function, you have to convert blanks into plusses. If you do not do that, the decoded data is corrupted:<?php  $encodedData = str_replace(' ','+',$encodedData);  $decocedData = base64_decode($encodedData);?>
up
3
martinstaemmler at gmx dot net
15 years ago
I had some trouble trying to let base64_decode decode base64-strings longer than ~5k chars.

The base64-decoding function is a homomorphism between modulo 4 and modulo 3-length segmented strings. That motivates a divide and conquer approach: Split the encoded string into substrings counting modulo 4 chars, then decode each substring and concatenate all of them.

Then instead of 

<?php $decoded = base64_decode($encoded); ?>

for big $encoded strings, it's saver to use

<?php
$decoded = "";
for ($i=0; $i < ceil(strlen($encoded)/256); $i++)
   $decoded = $decoded . base64_decode(substr($encoded,$i*256,256));
?>

where 256 can be replaced by a sufficiently small modulo 4 natural.
up
2
Tom
18 years ago
This function supports "base64url" as described in Section 5 of RFC 4648, "Base 64 Encoding with URL and Filename Safe Alphabet"    <?php    function base64url_decode($base64url)    {        $base64 = strtr($base64url, '-_', '+/');        $plainText = base64_decode($base64);        return ($plainText);    }    ?>
up
0
walf
9 years ago
Base64 for URL parameters/filenames, that adhere to RFC 4648.Defaults to dropping the padding on encode since it's not required for decoding, and keeps the URL free of % encodings.<?phpfunction base64url_encode($data, $pad = null) {    $data = str_replace(array('+', '/'), array('-', '_'), base64_encode($data));    if (!$pad) {        $data = rtrim($data, '=');    }    return $data;}function base64url_decode($data) {    return base64_decode(str_replace(array('-', '_'), array('+', '/'), $data));}
up
-1
pete panic
1 year ago
Note, that padding characters are not limited to "=". any character(s) at the end of the string that cannot be decoded will be interpreted as padding. if $strict is set to true, of course padding characters are limited to base64 characters.examples:<?php// $strict = false;$str = 'VGhpcyBpcyBhbiBlbmNvZGVkIHN0cmluZw==';echo base64_decode($str); // This is an encoded string$str = 'VGhpcyBpcyBhbiBlbmNvZGVkIHN0cmluZw';echo base64_decode($str); // This is an encoded string$str = 'VGhpcyBpcyBhbiBlbmNvZGVkIHN0cmluZwA';echo base64_decode($str); // This is an encoded string$str = 'VGhpcyBpcyBhbiBlbmNvZGVkIHN0cmluZwA=';echo base64_decode($str); // This is an encoded string// $strict = true;$str = 'VGhpcyBpcyBhbiBlbmNvZGVkIHN0cmluZw==';echo base64_decode($str, true); // This is an encoded string$str = 'VGhpcyBpcyBhbiBlbmNvZGVkIHN0cmluZw';echo base64_decode($str, true); // This is an encoded string$str = 'VGhpcyBpcyBhbiBlbmNvZGVkIHN0cmluZwA';echo base64_decode($str, true); // This is an encoded string$str = 'VGhpcyBpcyBhbiBlbmNvZGVkIHN0cmluZwA=';echo base64_decode($str, true); // This is an encoded string?>
To Top