1

これはphp.net Webサイトから取得しました。これは、以下のコードで私が抱えている問題に関連しています。誰でも次のことを説明できますか。ビスタを使用しています。サーバー上で Word を実行するとはどういう意味ですか?

Word の例を実行するには、サーバー側で次の手順を実行します。私のために働いた... 1. START-->RUN をクリックし、「dcomcnfg」と入力します。 5. [カスタム アクセス許可を使用する] をクリックし、[編集] をクリックします。 6. [追加] をクリックし、[ユーザーの表示] をクリックします。 7. IIS 匿名ユーザー アカウント (通常は IUSR_) を強調表示し、[追加] をクリックします。 OK 9. [カスタム起動アクセス許可を使用する] をクリックし、[編集] をクリックします。 10. [追加] をクリックし、[ユーザーの表示] をクリックします。

また、Microsoft Word 文書のプロパティの [ID] タブを見て、[対話型ユーザー] に設定されていることを確認してください。

また、IUSR_ アカウントとしてマシンにログインし、word を開始し、Word が特定のユーザーに対して初めて実行されたときに表示されるダイアログ ボックスをクリックして確認します。つまり、Word が IUSR_ ユーザーに対して正常に開くことを確認します。

<?php
    // starting word
    $word = new COM("word.application") or die("Unable to instantiate Word");
    echo "Loaded Word, version {$word->Version}\n";

    //bring it to front
    $word->Visible = 1;

    //open an empty document
    $word->Documents->Add();

    //do some weird stuff
    $word->Selection->TypeText("This is a test...");
    $word->Documents[1]->SaveAs("Useless test.doc");


    //closing word
    $word->Quit();

    //free the object
    $word = null;
    ?>
4

2 に答える 2

2

サーバー上で実行されている Web ページにユーザーがアクセスすると (Vista で Web サーバーを実行しているのは奇妙です。これは開発環境ですか?)、Web サーバー ソフトウェア (Microsoft Internet Information Systems、または IIS) は、プロセスを実行することによってその要求に応答します。 (あなたの場合、PHP)。Windows では、すべてのプロセスをユーザー アカウントで実行する必要があります。上記のコード サンプルの手順では、IIS ユーザー アカウントに Microsoft Word を実行するアクセス許可を与える方法について詳しく説明しています。

Word を起動する手順は単なるトラブルシューティングです。Web ページの要求に応じて Word を実行するユーザーが本当に Word を起動できることを確認してください。

このコードは、Microsoft Word 機能を提供する COM サーバーをロードし、テキストを追加して、ドキュメントを保存します。Web サーバーは IIS ユーザー アカウントで PHP インタープリターを実行し、PHP は Word COM サーバーを起動するため、IIS ユーザーには COM オブジェクトを起動する権限を付与する必要があるため、以前の手順が必要でした。

影響の問題に関しては、ユーザー入力を適切にサニタイズして検証する限り、セキュリティへの影響はないと思います.Wordを使用してもセキュリティに関してはあまり変わりません. ただし、潜在的に大きなパフォーマンスのボトルネックがあります。Word の COM サーバーはロードに時間がかかる場合があり、Web ページへの要求の間に中断がある場合、COM システムが Word COM サーバーをアンロードし、次の要求で完全に再ロードされる可能性があります。

于 2010-03-25T05:39:31.380 に答える
1

返信ありがとうございます。これを使用して問題を解決しました: http://www.phpbuilder.net/columns/venkatesan20030501.php3 ?

于 2010-03-25T06:19:27.067 に答える