php如何识别office 2007格式的文档,比如.docx .xlsx .pptx,我在网上找到,使用二进制来识别文件签名,但是office 2007的文档二进制前4位都是相同的,如何才能够区分开,各自属于哪类文档? 我上网搜到如下代码,想通过如下代码将文档变成zip格,然后在找到 [Content_Types].xml文件,然后通过正则找到ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+> 标签,就可以识别文件的类别了!
/** * Read Docx File * * @param string $file filepath * @return string file content */ function parseWord($file) { $content = ""; $zip = new ZipArchive ( ); if ($zip->open ( $file ) === tr ) { for($i = 0; $i < $zip->numFiles; $i ++) { $entry = $zip->getNameIndex ( $i ); if (pathinfo ( $entry, PATHINFO_BASENAME ) == "[Content_Types].xml") { $zip->extractTo ( pathinfo ( $file, PATHINFO_DIRNAME ) . "/" . pathinfo ( $file, PATHINFO_FILENAME ), array ( $entry ) ); $filepath = pathinfo ( $file, PATHINFO_DIRNAME ) . "/" . pathinfo ( $file, PATHINFO_FILENAME ) . "/" . $entry; $content = strip_tags ( file_get_contents ( $filepath ) ); break; } } $zip->close (); rrmdir ( pathinfo ( $file, PATHINFO_DIRNAME ) . "/" . pathinfo ( $file, PATHINFO_FILENAME ) ); return $content; } else { return ""; } } ?>excel的话,可以用phpexcel。
至于word我没有研究过,phpexcel中有针对03版和07版excel格式探测的函数,你可以对比下,提取出对你有用的信息。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。