base64_decode 


string apg

DECODES a data, previously encoded by the  base64_encode  function.




CPAN apr 


<?php

string
|false base64_decode string $stringbool $strict FALSE )

where,

$string The base64 encoded to be decoded

$strict 
To control whether there are characters 
              inside 
or outside the Base64 alphabet.

?>

  $string   


The base64 encoded to be decoded.



 $strict 


If $strict = TRUE this functions returns FALSE if $string contains character from outside the base64 alphabet.

Otherwise invalid characters will be silently discarded.

Returns the decoded data or FALSE on failure.

The returned data may be binary.




 BASE64   


In programming, Base64 is a group of binary-to-text encoding schemes that represent binary data (more specifically, a sequence of 8-bit bytes) in an ASCII string format by translating the data into a radix-64 representation.

The term Base64 originates from a specific MIME content transfer encoding.

Each non-final Base64 digit represents exactly 6 bits of data.

Three bytes (i.e., a total of 24 bits) can therefore be represented by four 6-bit Base64 digits.

Common to all binary-to-text encoding schemes, Base64 is designed to carry data stored in binary formats across channels that only reliably support text content.

Base64 is particularly prevalent on the World Wide Web where its uses include the ability to embed image files or other binary assets inside textual assets such as HTML and CSS files.

Base64 is also widely used for sending e-mail attachments.

This is required because SMTP - in its original form - was designed to transport 7-bit ASCII characters only.

This encoding causes an overhead of 33–36% (33% by the encoding itself; up to 3% more by the inserted line breaks).

The particular set of 64 characters chosen to represent the 64-digit values for the base varies between implementations.

The general strategy is to choose 64 characters that are common to most encodings and that are also printable.

This combination leaves the data unlikely to be modified in transit through information systems, such as email, that were traditionally not 8-bit clean.

For example, MIME's Base64 implementation uses A-Z, a-z, and 0-9 for the first 62 values.

Other variations share this property but differ in the symbols chosen for the last two values; an example is UTF-7.

The earliest instances of this type of encoding were created for dial-up communication between systems running the same OS, for example, uuencode for UNIX and BinHex for the TRS-80 (later adapted for the Macintosh), and could therefore make more assumptions about what characters were safe to use.

For instance, uuencode uses uppercase letters, digits, and many punctuation characters, but no lowercase.

base64_encode

is designed to allow binary data transfer in 8-bit layers to be handled in layers that are not truly 8-bit.

From Wikipedia, the free encyclopedia



Base64 alphabet
0 A 16 Q 32 g 48 w
1 B 17 R 33 h 49 x
2 C 18 S 34 i 50 y
3 D 19 T 35 j 51 z
4 E 20 U 36 k 52 0
5 F 21 V 37 l 53 1
6 G 22 W 38 m 54 2
7 H 23 X 39 n 55 3
8 I 24 Y 40 o 56 4
9 J 25 Z 41 p 57 5
10 K 26 a 42 q 58 6
11 L 27 b 43 r 59 7
12 M 28 c 44 s 60 8
13 N 29 d 45 t 61 9
14 O 30 e 46 u 62 +
15 P 31 f 47 v 63 /
            64 =
ed48

  1 EXERCISE   

<?php

$strbase64_it_01 
=
'Li4uIMOoIGJlbmUgdHJvdmF0byE=';

$str_it_01 
base64_decode($strbase64_it_01);

echo 
$str_it_01

?>

 RESULT   

Li4uIMOoIGJlbmUgdHJvdmF0byE=

...è bene trovato!



  2 EXERCISE   

<?php

$fp 
fopen('dat/starp.dat'"r");
$img_str fread($fp8000);
fclose($fp);

?>
The decoded image file:<br><br>
<img src="data:image/png;base64, <?php echo $img_str?>" alt="star apr">

 RESULT   

The decoded image file:

star apr

  3 EXERCISE   

<?php

// Run this code to see the result

echo "Decode an input string containing the 
                    whole base64 alphabet:<br><br>"
;
                    
$allbase64 "ABCDEFGHIJKLMNOPQRSTUVWXYZ
              abcdefghijklmnopqrstuvwxyz
              0123456789
              +/VV=="
;

var_dump(bin2hex(base64_decode($allbase64)));
echo 
'<br><br>';
var_dump(bin2hex(base64_decode($allbase64false)));
echo 
'<br><br>';
var_dump(bin2hex(base64_decode($allbase64true)));

?>

  4 EXERCISE   

<?php

// Run this code to see the result

echo "Decode 'hello world!':<br><br>";

$noWhiteSpace "aGVsbG8gd29ybGQh";
var_dump(base64_decode($noWhiteSpace));
echo 
'<br><br>'
var_dump(base64_decode($noWhiteSpacefalse));
echo 
'<br><br>'
var_dump(base64_decode($noWhiteSpacetrue));

echo 
"<br><br>Whitespace does not affect base64_decode, 
                          even with \$strict===true:<br>"
;
$withWhiteSpace "a GVs   bG8gd2
                        9ybGQh"
;
var_dump(base64_decode($withWhiteSpace));
echo 
'<br><br>'
var_dump(base64_decode($withWhiteSpacefalse));
echo 
'<br><br>'
var_dump(base64_decode($withWhiteSpacetrue));

echo 
"<br><br>Other chars outside the base64 alphabet 
                    are ignored when \$strict===false, 
                    but cause failure with \$strict===true:<br>"
;
$badChars $noWhiteSpace '*';
var_dump(base64_decode($badChars));
echo 
'<br><br>'
var_dump(base64_decode($badCharsfalse));
echo 
'<br><br>'
var_dump(base64_decode($badCharstrue));

?>