首页 > 后端开发 > php教程 > PHP主|从具有PHP的访问数据库中提取对象,第2部分

PHP主|从具有PHP的访问数据库中提取对象,第2部分

William Shakespeare
发布: 2025-02-24 10:45:10
原创
296 人浏览过

>本文演示了如何使用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方法,仅更改定界数:

<?php
function extractUnknown($id, $data) {
    file_put_contents($id . ".txt", hex2bin($data));
}
?>
登录后复制
登录后复制

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对象类型。 这个两部分的系列提供了远离传统访问数据库的有价值的工具。>
<?php
function extractUnknown($id, $data) {
    file_put_contents($id . ".txt", hex2bin($data));
}
?>
登录后复制
登录后复制

(为简洁而省略了常见问题部分,但可以以与其余的输出相似的释义重新编写。

以上是PHP主|从具有PHP的访问数据库中提取对象,第2部分的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板