php之word读取和写入

程序
0 384
caixiaoxu
2018-12-05

想到php对word的操作,首选当然是phpword这个库了,于是乎小编轻轻的撸了一遍phpword的手册,惊奇的发现,没有php读取word的操作,于是各种百度,终于搜到了~~~phpword对word真的没有读取的操作,然后百度上奇奇怪怪的对word的读取代码,看过试过基本都是乱码,要么就根本运行不了。于是乎,采用科学上网的方式,在谷歌搜了一下reading word in php(秀了一拨英语。。),第一条就搜到了。。。直接代码吧。

public function word()
{
$filename = 'G:/doc.docx';
$striped_content = '';
$content = '';

//判断存在
if(!$filename || !file_exists($filename)) return false;

//zip格式打开文件
$zip = zip_open($filename);

//不存在或者为纯数字就返回
if (!$zip || is_numeric($zip)) return false;

//读取zip文件
while ($zip_entry = zip_read($zip)) {

//打开一个zip档案以供读取
if (zip_entry_open($zip, $zip_entry) == FALSE) continue;

//zip档案项目的名称是否是这个
if (zip_entry_name($zip_entry) != "word/document.xml") continue;

//打开的zip档案项目中获取内容
$content .= zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));

//关闭掉zip_entry_open
zip_entry_close($zip_entry);

}// end while

//关闭掉zip_open
zip_close($zip);

//file_put_contents('1.xml', $content);

//下面这三步的操作主要是用来去除word样式的,让他变成纯文字,
//保留的话,可以看到原来的样式,但是想获取样式,就得自己再去想办法了
$content = str_replace('', " ", $content);

$content = str_replace('', "\r\n", $content);

$striped_content = strip_tags($content);

echo $striped_content ;
}

读取操作很烦的地方就是样式,如果是纯文字,那问题不大,如果要保留样式,又还要图片,那自行解决吧,我没找到~~~

好了要说关于word的写入操作了,关于他的写入操作,直接去看phpword手册就行了不废话

任意门:https://phpword.readthedocs.io/en/latest/


回帖