您的位置:首页 > 编程语言 > PHP开发

php读取word

2016-07-10 00:00 676 查看
摘要: zip_entry_read,OOXML

OOXML是由微软公司为Office 2007产品开发的技术规范,现已成为国际文档格式标准,兼容前国际标准开放文档格式和中国文档标准标文通(外语简称:UOF)。于2006年12月成为ECMA标准

(摘自:http://baike.baidu.com/link?url=AxZgXZsmvRxUP0RB-uJJIIwmyYXK6EhPl3pAFFYZwH-VHXIve80d-pWJiehgzsZQX1BeI-VXQljPH5StFVi6QK)

一个服务器端的过程可以从一个ZIP压缩包中读取其中一项,而无需将它们所有的内容解压。例如,您可以只提取文档的数据中包含的XML文件,而不需要打开包含文档的格式、属性和其它辅助信息的文件

0ffice 2007系列文档基于OOXML格式,所以我们可以利用 zip_entry_read() 方法读取其中的内容。 关于兼容问题,比如doc文档,可以简单粗暴的将后缀名更改为 docx (亲测可用)。

<?php

function read_docx($filename){

$striped_content = '';
$content = '';

if(!$filename || !file_exists($filename)) return false;

$zip = zip_open($filename);
if (!$zip || is_numeric($zip)) return false;

while ($zip_entry = zip_read($zip)) {

if (zip_entry_open($zip, $zip_entry) == FALSE) continue;

if (zip_entry_name($zip_entry) != "word/document.xml") continue;

$content .= zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));

zip_entry_close($zip_entry);
}
zip_close($zip);
$content = str_replace('</w:r></w:p></w:tc><w:tc>', "<p>", $content);
$content = str_replace('</w:r></w:p>', "</p>", $content);
$striped_content = strip_tags($content);

return array(
"strip_content"=>$striped_content,
"content"=>$content);
}
//test
$_arr = read_docx('./word/test.docx');
print_r($_arr['content']);
//print_r($_arr['strip_content']);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  php word