无法在PHP中使用COM打开Word文档

w00*_*w00 8 php com ms-word

我正在尝试使用COM函数打开并使用PHO读取Word文档的内容.但每当我尝试阅读内容时,它会给我以下错误:

致命错误:带有消息的未捕获异常'com_exception'' 源: Microsoft Word
描述:此命令不可用,因为没有文档打开.

我有以下代码:

    $word = new \COM ( "word.application" ) or die ( "Could not initialise MS Word object." );
    $word->Documents->Open ( realpath("test.doc" ) );

    // Extract content.
    $content = (string) $word->ActiveDocument->Content;

    echo $content;

    $word->ActiveDocument->Close(false);

    $word->Quit();
    $word = null;
    unset($word);
Run Code Online (Sandbox Code Playgroud)

我100%确定Word文档存在.我已经多次检查了这个.该文件的权限设置为Full Control.所以这也不可能.


我也读过关于php.net的评论.它说IIS引起了一个问题(我已经运行了).他的解决方案如下:

  • 执行"dcomcnfg"
  • 打开组件服务>计算机>我的电脑> DCOM配置
  • 搜索Microsoft Office Word 97-2003文档(它将被翻译成您的语言,所以需要一段时间并搜索它)< - 坚持这一点,找不到任何名为"Microsoft Office ... "
  • 右键单击它并打开属性
  • 选择"身份"选项卡
  • 通常将其设置为"启动用户".您必须将其更改为"交互式用户"或您选择的管理员用户.
  • 应用这些新设置并测试COM应用程序.它现在应该工作正常.

无论如何,我仍然没有这个工作.任何人都知道怎么可能修复这个错误...... ???

w00*_*w00 8

我刚刚找到了解决方案.我谈到的步骤:

  • 执行"dcomcnfg"
  • 打开组件服务>计算机>我的电脑> DCOM配置
  • 搜索Microsoft Office Word 97-2003文档(它将是...
  • 等等..

这样可行.但就像我说的,我找不到Microsoft Office Word 97-2003配置.所以这就是我为了使它出现在列表中所做的.

  1. 开始
  2. mmc -32
  3. 文件
  4. 添加删除管理单元
  5. 组件服务
  6. 控制台根
  7. 组件服务
  8. 电脑
  9. 我的电脑
  10. DCOM配置
  11. Microsoft Excel应用程序

所以现在你应该能够按照我的第一篇文章中的步骤进行操作.然后PHP应该能够毫无困难地阅读文档.