我試圖通過使用COM函數打開並閱讀PHO的Word文檔的內容。但每當我嘗試閱讀的內容,那麼它給了我下面的錯誤:無法在PHP中使用COM打開Word文檔
Fatal error: Uncaught exception 'com_exception' with message 'Source: Microsoft Word
Description: This command is not available because no document is open.'
我有以下代碼:
$word = new \COM ("word.application") or die ("Could not initialise MS Word object.");
$word->Documents->Open (realpath("test.doc"));
// Extract content.
$content = (string) $word->ActiveDocument->Content;
echo $content;
$word->ActiveDocument->Close(false);
$word->Quit();
$word = null;
unset($word);
我100%肯定的Word文檔存在。我已經檢查了很多次。該文件的權限設置爲Full Control
。所以這也不可能。
我也讀了一篇關於php.net的評論。它說IIS導致了一個問題(我正在運行)。他的解決辦法是這樣的:
- 執行「DCOMCNFG」
- 打開組件服務>計算機>我的電腦> DCOM配置
- 搜索Microsoft Office Word中97-2003文檔(這將是這樣翻譯成你的語言,所以採取了一會兒,搜索),< - 在這一個卡住,無法找到任何所謂的「微軟辦公室...」
- 右鍵點擊它,打開屬性
- 選擇「身份」標籤
- 通常這設置爲「啓動用戶」。您必須將其更改爲「交互式用戶」或您選擇的管理員用戶。
- 應用這些新設置並測試您的COM應用程序。它應該現在工作正常。
無論如何,我還沒有得到這個工作。任何人有任何想法如何可能解決這個錯誤... ???
我不得不使用這臺計算機的普通用戶帳戶,所以在IIS中的PHP永遠不能運行COM(加上一些其他功能),但在CLI中的PHP可以。還沒有測試過,但是如果我真的需要使用COM,我會把它製作成一個CLI腳本,並讓CGI腳本像'exec'那樣執行它。 – Passerby
似乎'word 2007'不需要這個配置?我無法爲我的Word 2007找到此DCOM配置。但COM運行良好。所以有人幫忙? – Turtle