docx文件其实是由很多XML文件组成,其中内容就存在于word/document.xml里面。
我们找到一个docx文件,使用zip文件打开(或者把docx后缀名改为zip,然后解压)
在word目录下有document.xml,docx文件的内容就存在于document.xml里面,我们读取这个文件就可以了
注意:
① $file文件不能与当前代码在同一目录文件下,$file存放在单独的文件夹
② doc文档无法解析 必须是docx
演示代码
echo parseWord('d:\Users\Administrator\Desktop\demo.zip');函数实现
function parseWord($file) {
	$content = "";
	$zip = new ZipArchive();
	if ($zip->open($file) === TRUE) {
		for ($i = 0; $i < $zip->numFiles; $i++) {
			$entry = $zip->getNameIndex($i);
			if (pathinfo($entry, PATHINFO_BASENAME) == "document.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();
		return $content;
	} else {
		return false;
	}
}附带 ZipArchive打开文件时的错误代码
| 0    ZIPARCHIVE::ER_OK     没有错误。 1    ZIPARCHIVE::ER_MULTIDISK    不支持多磁盘zip压缩包。 2    ZIPARCHIVE::ER_RENAME    重命名临时文件失败。 3    ZIPARCHIVE::ER_CLOSE    关闭zip压缩包失败。 4    ZIPARCHIVE::ER_SEEK    寻址错误 5    ZIPARCHIVE::ER_READ    读取错误 6    ZIPARCHIVE::ER_WRITE    写入错误 7    ZIPARCHIVE::ER_CRC    CRC校验失败 8    ZIPARCHIVE::ER_ZIPCLOSED    zip压缩包已关闭 9    ZIPARCHIVE::ER_NOENT    没有文件 10    ZIPARCHIVE::ER_EXISTS    文件已经存在 11    ZIPARCHIVE::ER_OPEN    不能打开文件 12    ZIPARCHIVE::ER_TMPOPEN    创建临时文件失败 13    ZIPARCHIVE::ER_ZLIB    Zlib错误 14    ZIPARCHIVE::ER_MEMORY    内存分配失败 15    ZIPARCHIVE::ER_CHANGED    条目已被改变 16    ZIPARCHIVE::ER_COMPNOTSUPP    不支持的压缩方式 17    ZIPARCHIVE::ER_EOF    过早的EOF 18    ZIPARCHIVE::ER_INVAL    无效的参数 19    ZIPARCHIVE::ER_NOZIP    不是一个zip压缩包 20    ZIPARCHIVE::ER_INTERNAL    Internal 21    ZIPARCHIVE::ER_INCONS    Zip压缩包不一致 22    ZIPARCHIVE::ER_REMOVE    不能移除文件 23    ZIPARCHIVE::ER_DELETED    条目已被删除  | 
|---|
 
			 
																	   
								 
																	   
								 
  