1

COMを使用してPHP(Yii Framework)で作成したWebアプリを使用してテンプレートからWord文書を作成していますが、オブジェクトを解放しようとするとエラーが発生します

    $word = new COM("Word.Application") or die("Unable to instantiate Word");
    ....
    $word->Quit(); 
    $word->Release(); 
    $word = null; 

Releaseメソッドを使用すると、エラー[0x800706be]が発生します。リモートプロシージャコールが失敗しました。イベントビューアにエラーはありません。実際、Microsoft Officeセッションが17秒間続き、セッションが正常に終了したと報告されています。タスクマネージャでWordがまだアクティブではなく、コードに従ってドキュメントが生成されます。私の質問は、Releaseメソッドを使用する必要があるかどうかです-Quitしてオブジェクトをnullに設定するだけで十分ですか?これは、PHPバージョン5.4.7を使用するApacheサーバーで実行されています。

4

1 に答える 1

2

これは機能します:

$word = new COM("Word.Application") or die("Unable to instantiate Word");
...
$word->Quit();
$word = NULL;
unset($word);

さらなる説明:

Release コマンドは必要ないので、それを削除し、必ず unset($word); を使用してください。不要になった変数を破棄するコマンド

于 2013-04-06T13:33:55.697 に答える