我的php应用程序遇到了问题。我正在建立一个应该连接到我们的ERP(选择线)的服务应用程序。
但是我无法创建一个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,因为之前找不到COM类。
由于我是COM的新手,我不知道在哪里搜索失败。
愿你们帮助我。
提前致谢
我改变了我的代码:
try {
$obj = new COM("word.application") or die("Unable to instantiate Word");
} catch (Exception $e) {
echo $e->getMessage() . "\n";
}
现在我明白了:
无法创建COM对象`word.application':语法无效
我没有弄错。根据这篇文章http://www.php.net/manual/en/class.com.php,不需要额外的参数,对吧?
答案 0 :(得分:1)
确保为“此用户”设置正确的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;
答案 1 :(得分:0)
您是否尝试在 services.msc 中提供 Apache 服务管理员权限?
但是,您需要在用于运行帐户的帐户上设置密码。
希望有所帮助..