この記事では、PHPを使用してLegacy Microsoft Accessデータベースから埋め込まれたPDFと画像ファイルを抽出する方法を示しています。 パート1は、パッケージオブジェクトを抽出しました。この部分は、PDFと一般的な画像形式(BMP、GIF、JPEG、PNG)に焦点を当てています。 これらのファイルは、多様ですが、一般的なOLEコンテナ構造:可変長ヘッダーとトレーラーを共有しています。 抽出のためにこの構造を活用します。
重要な概念:
strpos()
関数は、16進シーケンスsubstr()
(255044446)および%PDF
(2525454f46)。
%%EOF
extractUnknown()
。
%PDF
%%EOF
substr()
が含まれています。これは、埋め込まれた画像を識別するために重要です
人気のある画像タイプの抽出 OLEヘッダー内の画像タイプの識別は、発信ソフトウェアとファイルの関連によって異なります。
関数は、これらのタイプをカタログ化するのに役立ちます。 BMP、GIF、JPEG、およびPNGに焦点を当てます。 GIF、JPEG、およびPNG抽出はPDFメソッドを反映しており、デリミターのみを変更します。 extractUnknown()
BMP抽出はわずかに異なります。 スタートは簡単に見つかります(BM
)が、最後にはサイズ(ヘッダーから)を計算し、それを使用してデータを抽出する前にビッグエンディアン形式に変換する必要があります。
完全なphpスクリプト(部分)
以下は、更新されたPHPスクリプトのスニペットです。 GIF、JPEG、およびPNGを抽出する機能は、簡潔にするために省略されていますが、PDFおよびBMP抽出と同じパターンに従います。完全な更新されたスクリプト(省略された関数を含む)は、GitHub(Part-1およびPart-2ブランチへのリンク)で利用できます。この改良されたスクリプトは、アクセスデータベースからさまざまなOLEオブジェクトタイプを抽出するためのより包括的なソリューションを提供します。 この2部構成のシリーズは、レガシーアクセスデータベースから移行するための貴重なツールを提供します。
<?php function extractUnknown($id, $data) { file_put_contents($id . ".txt", hex2bin($data)); } ?>
(BrevityのためにFAQSセクションは省略されていますが、出力の残りの部分と同様の言い換えられたスタイルで書き直すことができます。)
以上がPHPマスター| PHPのアクセスデータベースからオブジェクトを抽出します、パート2の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。