Xampp PHP创buildCOM对象致命错误没有任何信息

我遇到了我的PHP应用程序的问题。 我正在build立一个应该连接到我们的ERP(selectline)的服务应用程序。

但是我不能创build一个COM对象。 此代码:

<?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"; ?> 

归还我:

致命错误:在第21行的C:\ xampp \ htdocs \ com.php中

我有两个环境:

Server 2008 R2 + Xampp v3.1.0 | PHP 5.4.7

Server 2012 R2 + Xampp v3.1.0 | PHP 5.4.7

我不得不在php.ini中添加php_com_dotnet.dll,因为我之前没有findCOM类。

由于我对COM完全陌生的事实,我不知道在哪里寻找失败。

愿你们能帮助我

提前致谢

我改了一下我的代码:

 try { $obj = new COM("word.application") or die("Unable to instantiate Word"); } catch (Exception $e) { echo $e->getMessage() . "\n"; } 

现在我得到:

无法创buildCOM对象`word.application':语法无效

我不明白什么是错的。 根据这篇文章http://www.php.net/manual/en/class.com.php有没有需要额外的参数,对不对?

你有没有尝试在services.msc中提供Apache服务管理权限?
但是,您需要在您用来运行帐户的密码上输入密码。 希望有帮助..

确保将正确的COM权限设置为“此用户”。

  • 运行:“dcomcnfg”
  • 展开:组件服务>计算机>我的电脑> DCOM配置。
  • 选择:“Microsoft Word 97-2003文档”
  • 右键单击它并打开属性
  • 单击标识选项卡。
  • 选择“此用户”,然后输入(管理员)用户的用户名和密码。
  • 应用这些新的设置并测试您的COM应用程序。 现在应该可以正常工作了。

我希望我能为你们中的一些人节省大量的时间:)

PHP设置

  • 在php.ini中启用COM扩展

延长= php_com_dotnet.dll

  • 重新启动Apache

用法

 <?php try { $word = new COM("word.application"); } catch (Exception $ex) { echo $ex->getMessage(); exit; } $word->Screenupdating = true; $word->WindowState = 2; $word->Visible = 0; $word->CheckLanguage = false; $word->Options->Overtype = false; $word->Options->SaveInterval = 0; $word->Assistant->Visible = false; $word->DisplayAlerts = false; // Do fancy stuff... // Close word $word->Quit(); $word = null;