首頁 >後端開發 >php教程 >PHP主|從具有PHP的訪問數據庫中提取對象,第2部分

PHP主|從具有PHP的訪問數據庫中提取對象,第2部分

William Shakespeare
William Shakespeare原創
2025-02-24 10:45:10298瀏覽

>本文演示瞭如何使用PHP從傳統Microsoft Access數據庫中提取嵌入式PDF和圖像文件。 第1部分涵蓋的提取包裝對象;該部分側重於PDF和常見圖像格式(BMP,GIF,JPEG,PNG)。 這些文件雖然多樣化,但共享一個通用的OLE容器結構:可變長度的標頭和拖車。 我們將利用這種結構進行提取。

密鑰概念:

    通過識別十六級序列(255504446)和(2525454F46)。 > strpos()圖像提取(BMP,GIF,JPEG,PNG):substr()使用類似的技術,適應每個圖像類型的啟動和結束定界符。 %PDF> %%EOF>處理未知的OLE類型:
  • 一個新功能,,保存未識別的OLE對像以供以後分析,增強了腳本的魯棒性。 > >
  • 增強的開關語句:
  • 改進了原始開關語句以處理較寬的OLE對像類型。 > extractUnknown()>提取Adobe Acrobat文檔(PDFS)
  • 示例數據庫在記錄13中包含一個PDF。檢查OLE字段的初始字節揭示了PDF的存在,但缺少元數據,例如文件名或大小。 但是,所有PDF中的一致
  • 標記允許可靠提取。 PHP腳本搜索這些十六進制序列以確定起點和終點,從而可以使用
>。

提取提取

%PDF %%EOF substr()

>處理其他對像類型

PHP Master | Extract Objects from an Access Database with PHP, Part 2>

改進的PHP腳本包括

來處理並保存未知的OLE類型(使用記錄ID作為文件名)進行以後檢查。這對於識別嵌入式圖像至關重要。 PHP Master | Extract Objects from an Access Database with PHP, Part 2

提取流行的圖像類型

OLE標頭中的

圖像類型標識因原始軟件和文件關聯而異。 extractUnknown()>功能有助於分類這些類型。我們將專注於BMP,GIF,JPEG和PNG。 GIF,JPEG和PNG提取反映了PDF方法,僅更改定界數:

<code class="language-php"><?php
function extractUnknown($id, $data) {
    file_put_contents($id . ".txt", hex2bin($data));
}
?></code>

BMP提取略有不同。 開始很容易找到(

),但是結束需要計算(從標題)計算大小並將其轉換為大型格式,然後再使用它提取數據。 BM

PHP Master | Extract Objects from an Access Database with PHP, Part 2

完整的PHP腳本(部分)

> >以下是更新的PHP腳本的片段。 省略了提取GIF,JPEG和PNG的功能,但要簡潔,但遵循與PDF和BMP提取的模式相同的模式。

>完整的更新腳本(包括省略的功能)可在GitHub上(鏈接到第1部分和第2部分分支)。此改進的腳本提供了一個更全面的解決方案,用於從訪問數據庫中提取各種OLE對像類型。 這個兩部分的系列提供了遠離傳統訪問數據庫的有價值的工具。 >
<code class="language-php"><?php
function extractUnknown($id, $data) {
    file_put_contents($id . ".txt", hex2bin($data));
}
?></code>

(為簡潔而省略了常見問題部分,但可以以與其餘的輸出相似的釋義重新編寫。

以上是PHP主|從具有PHP的訪問數據庫中提取對象,第2部分的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn