【问题标题】:PHP Class 'COM' not found未找到 PHP 类“COM”
【发布时间】:2012-08-07 05:24:05
【问题描述】:

我正在运行 Windows Server 2008 32 位、PHP 5.4.5 和 Apache 2.2.22。我很确定 COM 是 PHP 核心内置的,但是当我运行代码来调用一个新的 COM 对象时,我得到一个“找不到类 'COM'”错误。我调用的 COM 对象是 Microsoft Word,已安装。

代码:

$word = new COM("word.application") or die("Could not initiate Word COM Object.");

PHP 只是像上面描述的那样吐出错误。

【问题讨论】:

  • 有可能你没有编译 'com' 模块,点击 phpinfo 页面看看它是否存在。
  • 迈克你是对的——它不在 PHPInfo 中——但这怎么可能呢?我所做的只是从 PHP 的网站下载 ZIP 文件并将其解压缩到我的磁盘上。如何获得其中编译了 COM 的二进制文件?我认为 COM 是作为 PHP Core 的一部分的标准类,如此处所述 - php.net/manual/en/com.installation.php
  • 来自 cmets here: 从 PHP 5.4.5 开始,COM 和 DOTNET 不再内置在 php 核心中。您必须在 php.ini 中添加 COM 支持 . (看起来 PHP 页面确实需要更新 - 你会考虑提出 bug 票吗,Freddie?)
  • @halfer 请将其发布为答案,这可能对其他用户有帮助!
  • 谢谢halfer - 很好的发现。 +1

标签: php windows com


【解决方案1】:

来自PHP website上的用户cmets:

从 PHP 5.4.5 开始,COM 和 DOTNET 不再内置于 php 核心中。您必须在 php.ini 中添加 COM 支持。

【讨论】:

    【解决方案2】:

    值得注意的是,这也存在于 5.3.15 及更高版本,来自用户 cmets 的以下内容:

    从 5.3.15 开始(如果您仍在 5.3 分支上),您必须添加 extension=php_com_dotnet.dll 进入你的 php.ini 以获得 COM, DOTNET、VARIANT 和类似的类可用且有效。

    来自 PHP 更改日志:

    COM
    
        Fixed bug #62146 com_dotnet cannot be built shared
    

    正因为如此,现在为 Windows 构建了官方 PHP 版本 带有“--enable-com-dotnet=shared”选项,这意味着没有 COM/DOTNET 默认支持。

    【讨论】:

      猜你喜欢
      • 2017-06-03
      • 2013-08-16
      • 2013-04-20
      • 2012-06-08
      • 1970-01-01
      • 1970-01-01
      • 2017-11-14
      相关资源
      最近更新 更多