ホームページ >バックエンド開発 >PHPの問題 >PHP Base64からバイナリストリームへ

PHP Base64からバイナリストリームへ

王林
王林オリジナル
2023-05-06 13:42:071474ブラウズ

Web 開発において、バックエンド言語 PHP は最も一般的な言語の 1 つです。それに伴うデータ形式の変換も非常に一般的で、その中で Base64 はバイナリ データのエンコードによく使用される方法です。 Web 開発におけるファイルのアップロード、画像処理、その他のシナリオでは、Base64 形式のデータをバイナリ ストリームに変換する必要があります。この記事では、PHP を使用して Base64 形式のデータをバイナリ ストリームに変換する方法を紹介します。

1.Base64 エンコーディングとは何ですか?

Base64 は、バイナリ データを ASCII 文字にエンコードできるエンコード方式で、電子メール送信、HTTP プロトコル送信、暗号化ストレージなどのシナリオでよく使用されます。 Base64 エンコードの主な原理は、3 つの 8 ビット バイトを 4 つの 6 ビット コードワードに変換し、それらを「=」文字で埋めることです。 64 コードワードからいくつかの特殊文字が削除されるため、Base64 エンコーディングと呼ばれます。

2.Base64 をエンコード/デコードするにはどうすればよいですか?

PHP 処理では、Base64 エンコード/デコードで組み込み関数を直接使用できます。文字列の場合は、base64_encode() を使用してエンコードできます。 Base64 でエンコードされたデータの場合は、base64_decode() を使用してデコードできます。

たとえば、次のコード スニペットは文字列のエンコードとデコードを実装しています。

$str = "hello world";
echobase64_encode($str); // 出力 aGVsbG8gd29ybGQ=
echobase64_decode("aGVsbG8gd29ybGQ="); // hello world
?>

3 を出力します。Base64 形式のデータをバイナリ ストリームに変換するにはどうすればよいですか?

PHP では、Base64 形式のデータの場合、base64_decode() 関数を使用してデコードし、デコードされたデータを保存できます。写真のストレージを例に挙げると、Base64 形式のデータをバイナリ ストリーム (つまり、バイナリ ファイル) に変換する必要があります。

次のコード スニペットは、画像データを Base64 形式でローカル ファイルに保存する方法を示しています。

## AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPwGgAAQAA8MoMOQAAIABJREFU3rNl3X1sldW /s /s /s /s /s /s /s /s /s /s /s /s /s + WPsB41EvXr81q3UKqrq56r440WfI5J5 5fjGdeua556PLlW5P6fdXNL6C19ve6 /Kvpt6Xi5eJhZsaGTUUQEB/gVgcF g1ZePJZZy e9XJcV7LjEzt3nZ4s53deJpEyl eiJtghgRPV7JF9X TtTwwwuPtPwmBwOdA2nlm12mWLOxIfm2ouq 195LFy9Xp8Wf/uAHMvZtvfWXzc5 N5d8/j5GZHfmNFRMUFBQQR6dddXJ6/ v/1OTqrqc5fea1Z5aPOf968dMGSzqeDps24NGzeU6X B9iggUFhYKCgoyMjaIKApVVFRgR8evRQHxvXE3N3r6qqqpyx8fHBYGCgoKyswMwrIk dNBqNRqNjo7EQIC grK29mSEhJoJmYmBAQEAu0DQwJDQwNDQ2 t8d/ rae/1vhNlOJiYlNcN7GvjYaGh4c3qNSHR4fzxoLj4 Kh4cVlZWeYGFYC7QNKyQkFBQVcaMGMAnQNKbVTh8dL1ePV7Cw8Ofn5 xlW5fcvvykpKELZ pN5i5PT5W5duvU6ejtyy /OjU6NAhENvaW lpOzs7KyoqJiRsbGygW8qtg2MzPz3K5Xr9WmzatEsstISejXL169fmzJljDaWlpb8QvTKywPypWrj9XrVmJSUlISEgIAAAABJRU5ErkJggg==";

$file _path = "test.png";
$binary_data =base64_decode (str_re) place('data:image/png;base64 ,', '', $base64_image));
$file = fopen($file_path, "wb");
fwrite($file, $binary_data);
fclose($file);
?>

次のコードを解析します:

まず、Base64 形式の文字列 $base64_image を定義し、保存するファイルのファイル名 (test.png) を定義します。次に、str_replace() 関数を呼び出して、Base64 形式の文字列のヘッダーにある data:image/png;base64, 文字列を何も置き換えず、バイナリ データに変換します。

次に、ファイルを保存するファイル名を定義し、読み取りと書き込みのためにファイルを開き、対応するバイナリ データを書き込み、最後にファイルを閉じます。

このようにして、Base64形式の画像データをバイナリストリームに変換してローカルファイルに保存する処理が実現されます。

4. まとめ

この記事では主にPHPでBase64形式のデータをバイナリストリームに変換する方法を紹介します。 Base64 エンコードには、Web 開発における幅広いアプリケーション シナリオがあります。バイナリ データの送信または保存が必要な一部のシナリオでは、Base64 エンコードを理解することが非常に重要です。この記事を学習することで、読者が Base64 エンコードについての理解を深め、実際のアプリケーションでの使用についてより深く理解できることを願っています。

以上がPHP Base64からバイナリストリームへの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。