40

スクリプトで 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 

それでも同じエラーが発生します。

私はXAMMPMac と Linux ベースの Web ホスティングを使用しています。

4

4 に答える 4

150

PHP 5.4.5 から、COM と DOTNET は php コアに組み込まれなくなりました。php.ini で COM サポートを追加する必要があります。

[COM_DOT_NET]
extension=php_com_dotnet.dll

そうしないと、エラー ログに次のように表示されます: Fatal error: Class 'COM' not found

この拡張機能は、Windows 用の php 5.4.5 に含まれています。

于 2012-08-21T07:43:53.457 に答える
7

COM 要件を参照してください。

COM 関数は、Windows バージョンの PHP でのみ使用できます。

.Net サポートには、PHP 5 と .Net ランタイムが必要です。

于 2012-05-21T00:21:01.727 に答える
-1

Windows Server2019、Apache 32Bit (C:\Apache24)、PHP 32Bit (C:\PHP)を使用

jross が書いたように: php_com_dotnet.dll へのフルパスが私にとっての解決策でした (extension=C:\PHP\ext\php_com_dotnet.dll)。

于 2020-04-09T10:09:01.697 に答える