ホームページ  >  記事  >  バックエンド開発  >  PHP で Base64 エンコーディングを使用する方法

PHP で Base64 エンコーディングを使用する方法

WBOY
WBOYオリジナル
2023-09-02 20:29:103035ブラウズ

PHP で Base64 エンコーディングを使用する方法

この短い記事では、PHP のコンテキストにおける Base64 エンコードの基本について説明します。基本的に、PHP 関数を使用してデータを Base64 エンコード形式に変換する方法を見ていきます。

Base64 エンコードとは何ですか?

Base64 は、ASCII バイナリ データのエンコードです。文字列内の各文字は 6 ビットの情報を表します。実際にはバイナリ データを Base 64 表現で表します。復習が必要な場合は、数体系と基礎に関するこの入門書を参照してください。

Base64 エンコードの主な用途は、テキスト データを処理するために特別に設計されたプロトコルを介してバイナリ データを送信する場合に、バイナリ データを ASCII テキストにエンコードすることです。これにより、転送中にデータが損なわれないことが保証されます。具体的には、Base64 は電子メールの送信や HTML フォームでのバイナリ データのアップロードなどに使用されます。

Base64 エンコーディングのもう 1 つの一般的な用途はハッシュです。もちろん、Base64 エンコーディング自体は簡単にデコードできるため、ハッシュの生成に使用しないでください。まず、SHA などのハッシュ アルゴリズムを使用してハッシュが生成され、次に生成されたハッシュが Base64 エンコード形式に変換されて表示されます。 Base64 でエンコードされた 2 つのチェックサムの整合性を比較するのは非常に簡単です。

次のセクションでは、PHP の組み込み Base64 関数について説明します。

PHP の Base64 関数

PHP には、Base64 エンコードを処理する 2 つの主要な関数があります。 base64_encode 関数を使用すると、データを MIME Base64 形式でエンコードできます。一方、base64_decode 関数は、MIME Base64 でエンコードされたデータをデコードするために使用されます。

それぞれの機能を詳しく紹介していきます。

base64_encoding

base64_encode 関数の構文を見てみましょう。

リーリー

base64_encode 関数に渡す必要がある唯一の引数は、MIME Base64 にエンコードするソース文字列です。

これにより、Base64 でエンコードされた文字列が返されます。 Base64 でエンコードされたデータは、元のデータよりも約 33% 多くのメモリ領域を占有することに注意してください。

base64_decoding

base64_decode 関数の構文を見てみましょう。

リーリー

最初のパラメータは、デコードされる Base64 エンコードされたデータです。

2 番目のパラメータはオプションですが、TRUE を渡すと厳密なチェックが実行されます。これは、Base64 でエンコードされたデータに Base64 アルファベット以外の文字が含まれている場合、デコード関数は FALSE を返すことを意味します。これは、Base64 でエンコードされた文字列の整合性をチェックするのに役立ちます。一方、無効な文字を黙って破棄したい場合は、デフォルト値である FALSE を渡すだけです。

デコードが成功すると、関数はデコードされた文字列を返します。それ以外の場合は、FALSE を返します。関連する文字列がエンコード前にバイナリ形式である場合、base64_decode 関数はバイナリ データを返す可能性があることに注意してください。

次のセクションでは、PHP の組み込み Base64 関数の使用方法について説明します。

MIME Base64 を使用してデータをエンコードおよびデコードする方法

このセクションでは、Base64 関数の動作を確認するためにいくつかの例を見ていきます。

URLパラメータのエンコード

通常は、base64_encode 関数を使用して、URL を含むパラメータをエンコードすることになります。

次の例で、それがどのように機能するかを簡単に理解しましょう。

リーリー

ご覧のとおり、base64_encode 関数を使用しない場合、生成される URL は https://www.example.com/redirect/http://www のようになります。 .example .com/some/other/url、無効です。

Base64 エンコードされたチェックサム

前に説明したように、base64_encode 関数は、バイナリ データを ASCII 文字列に変換するときに便利です。

次の例を見てみましょう。

リーリー

上記の例では、hash_hmac 関数はハッシュ化されたバイナリ データを返します。したがって、base64_encode 関数を使用せずに生成されたバイナリ データを表示することは困難です。

###電子メールの添付ファイル###

PHP では、ファイルを添付して電子メールを送信するときに、ファイルの内容を Base64 エンコード形式にエンコードできます。実際、バイナリ添付ファイルを送信する場合は、添付ファイル データを生の形式で送信するのではなく、エンコードする必要があります。

次の例を見てみましょう。

リーリー

ご覧のとおり、添付ファイルとして送信する前に、

base64_encode

関数を使用してバイナリ画像データをエンコードしました。 このようにして、PHP で Base64 関数をさまざまな目的に使用できます。

###結論は###

この短い記事では、日常の PHP 開発で Base64 関数を使用する方法について説明しました。

以上がPHP で Base64 エンコーディングを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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