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
<?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] 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.
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:
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.
See COM Requirements:
COM functions are only available for the Windows version of PHP.
.Net support requires PHP 5 and the .Net runtime.
Using Windows Server2019, Apache 32Bit (C:\Apache24), PHP 32Bit (C:\PHP)
As jross wrote: Full path to php_com_dotnet.dll was the solution for me (extension=C:\PHP\ext\php_com_dotnet.dll).