Hướng dẫn php base64 encode - mã hóa php base64

Chuyển đến nội dung

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.

DEMO:

Các kết quả:

Max value english = 195
Max nonsense = 233

Vì vậy, bạn có thể làm một cái gì đó như sau:

if [ $maxDecodedValue > 200 ] {} //decoded string is Garbage - original string not base64 encoded

else {} //decoded string is useful - it was base64 encoded

Bạn có thể nên sử dụng giá trị trung bình [] của các giá trị được giải mã thay vì giá trị max [], tôi chỉ sử dụng hàm max [] trong ví dụ này vì đáng buồn là không có hàm ý nghĩa [] tích hợp sẵn trong PHP. Thước đo bạn sử dụng [trung bình, tối đa, v.v.] so với ngưỡng nào [ví dụ: 200] phụ thuộc vào hồ sơ sử dụng ước tính của bạn.

Tóm lại, động thái chiến thắng duy nhất là không chơi. Tôi sẽ cố gắng tránh phải phân biệt base64 ngay từ đầu.

25 hữu ích 0 bình luận chia sẻ 0 bình luận chia sẻ

[PHP 4, PHP 5, PHP 7, PHP 8]

base64_decode — Decodes data encoded with MIME base64Decodes data encoded with MIME base64

Description

base64_decode[string $string, bool $strict = false]: string|false[string $string, bool $strict = false]: string|false

Parameters

4

Bài Viết Liên Quan

Chủ Đề