Класс 'COM' не найден

Я пытался открыть документ Word в моем сценарии, но я получаю ту же ошибку.

 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(); 

?>

Я пытался изменить 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 

и все равно получаю ту же ошибку.

Я использую XAMMP на Mac, и веб-хостинг на основе Linux.

2 ответа

Решение

В PHP 5.4.5 COM и DOTNET больше не встроены в ядро ​​php. Вы должны добавить поддержку COM в php.ini:

[COM_DOT_NET]
extension=php_com_dotnet.dll

В противном случае вы увидите это в журнале ошибок: фатальная ошибка: класс 'COM' не найден

Расширение включено в php 5.4.5 для Windows.

Смотрите требования COM:

Функции COM доступны только для версии PHP для Windows.

Для поддержки.Net требуется PHP 5 и среда выполнения.Net.

Я использую PHP версии 5.6.14 для одного из своих проектов, файл php_com_dotnet.dll включен в каталог ext/, но он не добавлен в файл php.ini. Итак, вам нужно добавить строку "extension=php_com_dotnet.dll" в файл php.ini. Проверьте phpinfo() в браузере, чтобы убедиться, что он включен. Надеюсь, это может кому-то помочь.

Используя Windows Server2019, Apache 32Bit (C:\Apache24), PHP 32Bit (C:\PHP)

Как писал jross: Полный путь к php_com_dotnet.dll был для меня решением (extension=C:\PHP\ext\php_com_dotnet.dll).

Другие вопросы по тегам