base64_decode

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

base64_decodeMIME base64 ile kodlanmış verinin kodunu açar

Açıklama

base64_decode(string $dizge, bool $katı = false): string|false

MIME base64 ile kodlanmış dizge'nin kodlamasını kaldırır.

Bağımsız Değişkenler

dizge

Kodlaması kaldırılacak dizge.

katı

true atanmışsa ve girdi base64 karakterleri dışında karakterler içeriyorsa işlev false döndürür. Aksi takdirde geçersiz karakterler sessizce yok sayılır.

Dönen Değerler

Başarı durumunda özgün veriyi, başarısızlık durumunda false döner. Dönen veri ikil olabilir.

Örnekler

Örnek 1 - base64_decode() örneği

<?php
$dizge
= 'QnUgZGl6Z2Uga29kbGFubcSxxZ8gb2xhY2FrLg==';
echo
base64_decode($dizge);
?>

Yukarıdaki örneğin çıktısı:

Bu dizge kodlanmış olacak.

Ayrıca Bakınız

add a note

User Contributed Notes 6 notes

up
76
winkelnkemper at googlemail dot com
13 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
0
pete panic
9 months 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
?>
up
2
Tom
17 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.

<?php
function 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
-5
user at sfdsfd dot com
5 years ago
function is_base64($str){
if($str === base64_encode(base64_decode($str))){
return true;
}
return false;
}

---------------------------------------------------------------------------
---------------------------------------------------------------------------
---------------------------------------------------------------------------

$str = 'VGhpcyBpcyBiYXNlNjQgZW5jb2RlIHN0cmluZw==';

if(is_base64($str)){
print base64_decode($str);
}
To Top