找不到"COM"类

Oth*_*man 35 php xampp

我一直在尝试在我的脚本中打开一个word文档,但是我收到了同样的错误.

 Fatal error: Class 'COM' not found in /Applications/XAMPP/xamppfiles/htdocs/**/**.php on line 3
Run Code Online (Sandbox Code Playgroud)

我的代码:

<?php

$word = new COM("word.application") or die("Unable to instantiate Word"); 

$word->Visible = 1; 


$word->Documents->Open("wordfile.docx");
$temp = $word->Dialogs->Item(228); // returns wdDialogToolsWordCount dialog object
$temp->Execute();   //updates the word count
$numwords = $temp->Words(); //gets the words out of it

echo 'Word count = '.$numwords;

$word->Quit(); 

?>
Run Code Online (Sandbox Code Playgroud)

我试图更改php.ini并删除分区中的分号COM.

[com]
path to a file containing GUIDs, IIDs or filenames of files with TypeLibs
com.typelib_file = 
allow Distributed-COM calls
com.allow_dcom = true
autoregister constants of a components typlib on com_load()
com.autoregister_typelib = true
register constants casesensitive
com.autoregister_casesensitive = false
show warnings on duplicate constat registrations
com.autoregister_verbose = true 
Run Code Online (Sandbox Code Playgroud)

并仍然得到相同的错误.

我正在使用XAMMPon mac和基于linux的虚拟主机.

StX*_*tXh 138

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

[COM_DOT_NET]
extension=php_com_dotnet.dll
Run Code Online (Sandbox Code Playgroud)

否则,您将在错误日志中看到此信息:致命错误:未找到类"COM"

该扩展包含在PHP 5.4.5 for Windows中.

  • 这个答案是钻石. (11认同)

小智 7

请参阅COM要求:

COM函数仅适用于Windows版本的PHP.

.Net支持需要PHP 5和.Net运行时.