web-dev-qa-db-fra.com

Classe 'COM' introuvable

J'ai essayé d'ouvrir un document Word dans mon script, mais je reçois la même erreur.

 Fatal error: Class 'COM' not found in /Applications/XAMPP/xamppfiles/htdocs/**/**.php on line 3

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

?>

J'ai essayé de changer php.ini et supprimez les points-virgules de la section 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 

et toujours obtenir la même erreur.

J'utilise un XAMMP sur mac et un hébergement web basé sur linux.

34
Othman

Depuis PHP 5.4.5, COM et DOTNET ne sont plus intégrés au php core. Vous devez ajouter le support COM dans php.ini:

[COM_DOT_NET]
extension=php_com_dotnet.dll

Sinon, vous verrez ceci dans votre journal des erreurs: Erreur fatale: Classe 'COM' introuvable

L'extension est incluse avec php 5.4.5 pour Windows.

137
StXh

Voir Exigences COM :

Les fonctions COM ne sont disponibles que pour la version Windows de PHP.

La prise en charge de .Net nécessite PHP 5 et le runtime .Net.

7
user557846