问题
I\'ve been trying to open a word document in my script, but I get receiving the same error.
Fatal error: Class \'COM\' not found in /Applications/XAMPP/xamppfiles/htdocs/**/**.php on line 3
My code:
<?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();
?>
I\'ve tried to change php.ini
and remove the semicolons from COM
section.
[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
and still getting the same error.
I\'m using a XAMMP
on mac, and a linux based web hosting.
回答1:
From PHP 5.4.5, COM and DOTNET is no longer built into the php core.you have to add COM support in php.ini:
[COM_DOT_NET]
extension=php_com_dotnet.dll
Otherwise you will see this in your error log: Fatal error: Class 'COM' not found
The extension is included with php 5.4.5 for Windows.
回答2:
See COM Requirements:
COM functions are only available for the Windows version of PHP.
.Net support requires PHP 5 and the .Net runtime.
来源:https://stackoverflow.com/questions/10678325/class-com-not-found