>本文演示了如何使用PHP从传统Microsoft Access数据库中提取嵌入式PDF和图像文件。 第1部分涵盖的提取包装对象;该部分侧重于PDF和常见图像格式(BMP,GIF,JPEG,PNG)。 这些文件虽然多样化,但共享一个通用的OLE容器结构:可变长度的标头和拖车。 我们将利用这种结构进行提取。
密钥概念:
strpos()
图像提取(BMP,GIF,JPEG,PNG):substr()
使用类似的技术,适应每个图像类型的启动和结束定界符。%PDF
>
%%EOF
>处理未知的OLE类型:extractUnknown()
>提取Adobe Acrobat文档(PDFS)提取提取
%PDF
%%EOF
substr()
>
来处理并保存未知的OLE类型(使用记录ID作为文件名)进行以后检查。这对于识别嵌入式图像至关重要。
提取流行的图像类型
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提取略有不同。 开始很容易找到( ),但是结束需要计算(从标题)计算大小并将其转换为大型格式,然后再使用它提取数据。
>
>以下是更新的PHP脚本的片段。 省略了提取GIF,JPEG和PNG的功能,但要简洁,但遵循与PDF和BMP提取的模式相同的模式。
(为简洁而省略了常见问题部分,但可以以与其余的输出相似的释义重新编写。BM
<code class="language-php"><?php
function extractUnknown($id, $data) {
file_put_contents($id . ".txt", hex2bin($data));
}
?></code>
以上是PHP主|从具有PHP的访问数据库中提取对象,第2部分的详细内容。更多信息请关注PHP中文网其他相关文章!