Ich habe ein Problem mit meiner PHP-Anwendung. Ich baue eine Serviceanwendung auf, die an unser ERP (selectline) angeschlossen werden soll.Xampp PHP Erstellen COM-Objekt Schwerwiegender Fehler ohne irgendwelche Informationen
Aber ich kann nicht ein COM-Objekt erstellen. Dieser Code:
<?PHP
error_reporting(E_ALL);
session_start();
date_default_timezone_set('Europe/Zurich');
echo time();
$obj = new COM("fd6c8b29-e936-4a61-8da6-b0c12ad3ba00") or die("Unable to instantiate Word");
echo "Loaded Word, version {$word->Version}\n";
?>
Gibt mir:
Fatal error: in C:\xampp\htdocs\com.php on line 21
Ich habe zwei Umgebungen:
Server 2008 R2 + Xampp v3.1.0 | PHP 5.4.7
Server 2012 R2 + Xampp v3.1.0 | PHP 5.4.7
Ich musste die php_com_dotnet.dll in der php.ini hinzufügen, weil ich COM-Klasse nicht zuvor gefunden hatte.
Da ich COM komplett neu bin, habe ich keine Ahnung, wo ich nach dem Fehler suchen soll.
Darf ihr mir helfen?
Vielen Dank im Voraus
Ich änderte meinen Code ein bisschen:
try {
$obj = new COM("word.application") or die("Unable to instantiate Word");
} catch (Exception $e) {
echo $e->getMessage() . "\n";
}
Jetzt bekomme ich:
Failed to create COM object `word.application': Invalid Syntax
ich nicht bekommen, was falsch ist. Nach diesem Artikel http://www.php.net/manual/en/class.com.php gibt es keine Notwendigkeit für zusätzliche Parameter, oder?
Wort ausgelegt ist, nicht in einer Server-Umgebung ausgeführt werden. Selbst wenn Sie dieses Problem lösen, werden Sie viele andere Probleme bekommen. –
Ist Word auf Ihrem Server installiert? Ist die Erweiterung php_com_dotnet.dll in der php.ini aktiviert? – espino316
@ espino316 Ms Word ist auf meinem Server installiert && extension = php_com_dotnet.dll ist in php.ini aktiviert. Stellt sich heraus das Problem war, dass Komponentendienst (COM) von 32 Bit war, während Standardphp in diesen Servern von 64 Bit ist. Die Antwort [Link] (http://www.gfi.com/blog/32bit-object-64bit-environment/) für das Problem ist, dass 32-Bit-COM-Dienst als 64 zu registrieren, fand ich die Lösung für den Server 2008 ich versuchte gleiche Lösung für 2012 Server, aber es wird nicht funktionieren. –