実際の開発では、画像を文字列形式に変換してデータベースに保存するなど、一部のバイナリ ストリームを文字列形式に変換する必要がある場合があります。 PHP では、BLOB フィールドを使用してバイナリ ストリームを保存できますが、Web ページで表示するために BLOB フィールドを Base64 エンコードに変換する必要がある場合があります。この記事では、PHP で BLOB フィールドを Base64 エンコードに変換する方法について説明します。
まず、データベースから blob フィールドのバイナリ データを読み取る必要があります。 PHP の PDO 拡張機能を使用してデータベースを操作できます。以下は簡単なサンプル コードです:
try { $dbh = new PDO("mysql:host=localhost;dbname=test", $user, $pass); $stmt = $dbh->prepare("SELECT image FROM images WHERE id = ?"); $stmt->bindParam(1, $id); $stmt->execute(); $image = $stmt->fetchColumn(); $dbh = null; } catch (PDOException $e) { print "Error!: " . $e->getMessage() . "<br/>"; die(); }
上記のコードでは、PDO プリペアド ステートメントを使用して、データベースから ID $id を持つレコード内の画像フィールド データを読み取ります。 $image 変数はバイナリ データ ストリームを保持します。
次に、バイナリ データ ストリームを Base64 エンコードに変換する必要があります。 PHP の組み込みのbase64_encode() 関数でこの機能を実現できます。以下はサンプル コードです。
$base64_image = base64_encode($image);
バイナリ データ ストリーム $image を Base64 エンコードに変換し、$base64_image 変数に保存します。
最後に、base64 でエンコードされた画像データを Web ページで使用できるようになります。以下はサンプル コードです:
<img src="data:image/jpeg;base64,<?php echo $base64_image; ?>" alt="image" />
上記のコードはブラウザに画像を表示します。このうち、data:image/jpeg;base64は、画像の符号化形式およびbase64で符号化された画像データを表す。
開発中に、上記の方法を使用して、Web ページに表示するために BLOB フィールドを Base64 エンコードに変換できます。これにより、ページを開くたびにサーバーから画像をダウンロードする必要がなくなります。同時に、サーバーの帯域幅とリソースも節約できます。
以上がPHPでBLOBをbase64に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。