PHP で Base64 文字列から画像タイプを検出する
元の画像ファイルへのアクセスが制限され、base64 のみが残るシナリオに遭遇する可能性があります。 -エンコードされた文字列表現。このような文字列から画像タイプを判断するのは困難な場合があります。 imagecreatefromstring() 関数はデコードされた文字列から画像リソースを作成しますが、元の画像タイプ情報は隠蔽されます。
解決策: FileInfo を利用する
FileInfo は実行可能な解決策を提供します。この問題に。 finfo_buffer() メソッドを使用すると、base64 でデコードされた文字列から画像の MIME タイプを直接取得できます。このメソッドは、開いているファイル ハンドル (finfo_open() を使用して取得) と生の画像データの 2 つのパラメータを受け取ります。
コード例:
<code class="php">// Encoded base64 string $encoded_string = "...."; // Decode the string $imgdata = base64_decode($encoded_string); // Open FileInfo handle $f = finfo_open(); // Determine MIME type $mime_type = finfo_buffer($f, $imgdata, FILEINFO_MIME_TYPE);</code>
$mime_type変数には、「image/jpeg」や「image/png」などの画像の MIME タイプが含まれるようになります。この情報は、画像を保存するための適切なファイル拡張子を決定するために使用できます。
以上がFileInfoを使用してPHPでBase64でエンコードされた文字列から画像タイプを抽出する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。