php如何识别office 2007格式的文档

言会咸 发布于 2013/05/10 00:17
阅读 463
收藏 0
PHP

php如何识别office 2007格式的文档,比如.docx .xlsx .pptx,我在网上找到,使用二进制来识别文件签名,但是office 2007的文档二进制前4位都是相同的,如何才能够区分开,各自属于哪类文档?
我上网搜到如下代码,想通过如下代码将文档变成zip格式,然后在找到[Content_Types].xml文件,然后通过正则找到<Override PartName="/word/document.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml"/>标签,就可以识别文件的类别了!

PHP读取DOCX文件内容

<?php
/** 
* 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 ""; 
    } 
}
?>

以上这段代码好像无法使用,请高手帮帮忙,谢谢了!


加载中
0
konakona
konakona

excel的话,可以用phpexcel。

至于word我没有研究过,phpexcel中有针对03版和07版excel格式探测的函数,你可以对比下,提取出对你有用的信息。

0
言会咸
言会咸

引用来自“konakona”的答案

excel的话,可以用phpexcel。

至于word我没有研究过,phpexcel中有针对03版和07版excel格式探测的函数,你可以对比下,提取出对你有用的信息。

我已经解决此问题了,谢谢
返回顶部
顶部