sobota,
PHP: Kodowanie plików binarnych do base64
Jak zakodować plik graficzny do postaci tekstowej?
Kodowanie w formacie base64 umożliwia przesyłanie danych binarnych w postaci tekstowej. Celem stosowania takiego rozwiązania może byc:
- ukrycie ścieżki dostępu, aby uniemożliwić bezpośrednie linkowanie
- generowanie jednoplikowych stron WWW
- zmniejszenie liczby żądań HTTP
- ograniczanie dostępu, np. tylko dla zalogowanych
Pewnym minusem jest to, że dane zwiększą swój rozmiar o 33%.
function image2b64($plik) {
$h = fopen($plik,'rb');
$c = fread($h,filesize($plik));
fclose($h);
$p = getimagesize($plik);
$p['i'] = chunk_split(base64_encode($c));
return $p;
}
$file = './example.jpg';
$p = image2b64($file);
echo '<img src="data:'.$p['mime'].';base64,'.$p['i'].'" />';
Udział wzięli
fopen, fread, filesize, fclose, getimagesize, chunk_split, base64_encode, echo
Powyższa ramka to odnośniki do właściwych stron dokumentacji języka PHP.