-想您所想,多年经验-
白狐广告电话
白狐广告标志
当前位置:网站首页 - 信息中心
php怎么读取显示word文档
2018-9-7|阅:117|来自:白狐广告

php开发过程中可能会word文档的读取问题,这里可以利用com组件来完成此项操作,PHPWORD目前只是生成word文件。


一、前提,服务器上要安装office word。


二、先开启php.ini的COM,操作如下 

    1. com.allow_dcom = true 

    2. extension=php_com_dotnet.dll 

        我这里的环境是PHP5.4.7,PHP 5.4.5后,com/dotnet 模块已经成了单独的扩展,所以需要在PHP.ini中配置extension=php_com_dotnet.dll,如果PHP VERSION<5.4.5 则不需要。否则的话,可能就是报错 Fatal error: Class 'COM' not found 了。


三、有时候你会得到一个错误,
PHP Fatal error: Uncaught exception 'com_exception' with message 'Failed
to create COM object `word.application': 拒绝访问. '
    解决方法:

    点击开始菜单,运行dcomcnfg

    双击“组件服务”,双击“计算机”,双击“我的电脑”,选择“DCOM设置”

    在右边找到需要的COM组件,此例中为“Microsoft Word 文档”

    右击,打开“属性”菜单,选择“安全”标签

    将“启动和激活权限”设置成“自定义”,然后点击编辑

    点击“添加”>>“高级”>>“立即查找”,找到“internet 来宾用户”(默认为IUSER_电脑名),点击“确定”

    将“internet 来宾用户”的权限设置为本地启动允许,本地激活允许;

    将“访问权限”设置成“自定义”,然后点击编辑

    也点击“添加”>>“高级”>>“立即查找”,找到“internet 来宾用户”(默认为IUSER_电脑名),点击“确定”

    也将“访问权限”设置成“自定义”,然后点击编辑

    确定,完成。


四、开启之后就可以试下如下操作 

    // 建立一个指向新COM组件的索引
    $word = new COM("word.application") or die("Can't start Word!");
    // 显示目前正在使用的Word的版本号
    //echo "Loading Word, v. {$word->Version}";
    // 把它的可见性设置为0(假),如果要使它在最前端打开,使用1(真)
    // to open the application in the forefront, use 1 (true)
    //$word->Visible = 0;
    
    //打开一个文档
    $word->Documents->OPen(dirname(__FILE__)."/1.doc");
    //读取文档内容
    $test= $word->ActiveDocument->content->Text;
    echo $test;

    // 关闭与COM组件之间的连接
    $word->Quit();
    $word = null; 
    unset($word);

五、利用php的SaveAs()函数把doc文件保存成html文件

    上面的方法虽然可以获取到word中的文字,但是格式什么的全部清除了,下面我们利用saveas()函数把doc文件另存为html文件,再用file_get_contents()函数得到html文件里的内容,这样会保留下许多内容和格式,然后我们再清除多余html格式,保留下我们想要的内容。

    注意:file_get_contents()文件后要时行转码,iconv("gb2312", "utf-8//IGNORE",$html);这样内容的格式就转换成自己想要的。

    再利用explode()把内容分组,用strstr()函数截取我们想要的内容,比如两个字符串之间的内容。

    //完整代码

    $word = new COM("word.application") or die("Unable to instanciate Word"); //呼叫 word

    //$word->Visible = 1; 

    $word->Documents->OPen(dirname(__FILE__)."/2.doc"); //来源 DOC 文档

    $word->Documents[1]->SaveAs(dirname(__FILE__)."/5.html",8); //另存为html文件

    $html = file_get_contents("5.html"); //获取html里内容

    $string = iconv("gb2312", "utf-8//IGNORE",$html); //转换代码格式

    echo lego_clean($string); //lego_clean()方法需要自己定义,比如清除HTML代码,过滤头部信息等

    //以下 3 行都是关闭 word.exe 用的.

    $word->Quit();

    $word = null;

    unset($word);


标 签: PHPWORD php读取word

www.internetzg.com Copyright 2018-2018 | 以上内容白狐广告保留解释权,任何个人或单位不得抄袭COPY本公司网站内容,违者必究。

 

↑上一篇文章: php微信开发中遇到的问题
返回目录    ↓下一篇文章: win2008的IIS7+PHP5.3.8,速度奇…

白狐网站建设 白狐设计专门从事网站建设平面广告设计,专业致力于为企业及个人提供优质网站设计(网站建设、网站改版)网站优化推广域名空间画册设计(企业画册设计、产品画册设计、样本设计)印刷彩页单页设计印刷名片T恤衫设计制作台历挂历设计制作标志设计( LOGO设计、商标设计)产品包装设计制作艺术照片设计等。公司是由一流的设计师和专业的制作人员组成的运营团队,拥有多年的网站及广告设计制作经验,服务客户遍及北京、河北、山东、江苏等地区。
首 页 | 关于白狐 | 网站建设 | 平面广告 | 产品服务 | 合作伙伴 | 人才招聘 | 友情链接 | 网站地图 | 联系我们 | 站内搜索
白狐广告www.internetzg.com 网站最佳分辨率为1024*768 京ICP备06068476号
白狐广告服务电话:010-53312027 
13693231513技术 13522191688业务 15011320345售后 15810850699优化
网站建设,北京网站建设,手机建站,北京网站建设公司 北京白狐广告有限责任公司 版权所有
白狐广告公司地址:北京市朝阳区朝阳路8号朗廷大厦A座312室 邮编:100024
返回白狐广告顶部