Hướng dẫn dùng base64 format trong PHP

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.

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));
}

base64 là phương thức convert dạng mã hóa 2 chiều từ binary sang string để có thể gửi đi được trong network một cách dễ dàng. Các binary lúc này sẽ được thể hiện bằng các ký tự mã ASCII .

Chào các bạn, trong một số trường hợp bạn muốn mã hóa một số chuỗi với một lý do nào đó. Trong bài hướng dẫn này chúng tôi sẽ hướng dẫn các bạn cách mã hóa đơn gian trong php.

Đoạn code sao sẽ mã hóa đoạn ký tự của bạn sang Base64:

[php]
function base64url_encode($plainText) {
$base64 = base64_encode($plainText);
$base64url = strtr($base64, ‘+/=’, ‘-_,’);
return $base64url;
}

[/php]

Khi bạn muốn hiển thị lại đoạn text trên chỉ viết dùng fucntion sau đây:

[php]

function base64url_decode($plainText) {
$base64url = strtr($plainText, ‘-_,’, ‘+/=’);
$base64 = base64_decode($base64url);
return $base64;
}

[/php]

Chúc các bạn thành công!

Có nhiều giải pháp để mã hoá hình ảnh, Encode Base64 là một trong số đó. Khi chuyển hình ảnh về dạng này ảnh được hiển thị trực tiếp từ Encode Base64 Image mà không qua URL ban đầu, điều này có nghĩa là sau khi bạn đã mã hoá thì bạn sẽ dùng code đã mã hoá này thay thế cho link ảnh ban đầu.

Cách mã hoá này có ưu điểm là giúp bạn tránh được việc link ảnh bị die, hiển thị hình ảnh nhanh hơn và không sợ bị lỗi liên quan đến https. Tuy nhiên, nó cũng có nhược điểm là khi bạn dùng để hiển thị ảnh code in ra sẽ dài và nặng hơn.

Một chút giới thiệu về cách mã hoá này thôi. Bây giờ ta tiến hành thực hiện, các bạn làm theo hướng dẫn bên dưới.

//C1: dùng trên host
$path = "myfolder/myimage.png"; 'duong-dan-ảnh-trên-host
$type = pathinfo($path, PATHINFO_EXTENSION);

//C2: dùng từ URL get content về rồi mã hoá
$path = "http(s)://mydomain.com/myimage.png"; 'duong-dan-ảnh-từ-web
$headers = get_headers($path, 1);
$type = $headers["Content-Type"];

$data = file_get_contents($path);
$base64 = 'data:image/' . $type . ';base64,' . base64_encode($data);
//KQ => ảnh đã được encode sang base64

Code trên hoạt động bằng cách lấy content và header (để xem type ảnh) của ảnh rồi sao đó đưa vào phần mã hoá trả về kết quả $base64.