我遇到了我的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权限设置为“此用户”。
我希望我能为你们中的一些人节省大量的时间:)
PHP设置
延长= php_com_dotnet.dll
用法
<?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;