2011-01-11 5 views
2

ファイルを読むにはword.applicationでPHPを使用しようとしています。単にファイルを開くことはありません。それは正しいバージョンをエコーし​​ています。Office Wordを使用してPHPでdocファイルを読む

$w = new COM("word.application") or die("Is office installed?"); 
echo 'Loaded Word, version ' . $w->Version . '<br>'; 
$w->Visible = false; 

$w->Documents->Open(realpath('test.docx')); 

$content = (string) $w->ActiveDocument->Content; 

echo $content; 

$w->Quit(); 
$w->Release(); 
$w = null; 

私はエラーを取得する:

Uncaught exception 'com_exception' with message 'Source: Microsoft Word 
Description: This command is not available because no document is open.' 

それは権限の問題のいくつかの種類だように感じます。私はtest.docxのパスをrealpathを使う以外に置こうとしましたが、それは助けになりませんでした。また、私のCドライブのルートに入れてみました。私はWindows 7 ProfessionalとMicrosoft Office 2007を使用しています。

+0

ファイルへのパスが正しいことを確認してください。絶対パスを指定してください。 – Gordon

+0

私は絶対パスであってもトリプルパスをチェックしましたが、まだ運がありません。 – mikelbring

答えて

0

Documents-> OpenはすべてがOKならドキュメントを返します。おそらく、ドキュメントが存在しない(パスが間違っている)か、PHPから開くことができません。 $ varに結果を格納し、適切な値(おそらくnot issetnullまたはfalseでない場合)をチェックし、$ var-> Contentを使用して内容を読み取ります。

+0

私はそれを$ varに格納し、$ varをエコーし​​ます。結果はnullです。 – mikelbring

+0

これは、文書を開くことができないことを前提としています。理由を調べる必要があります。 PHPで他のファイル関数を試して、ファイルが見つかるかどうか、ファイルを開くために必要な権限があるかどうかを調べることができます。ファイルが存在するとみなしても、それを開くことが保証されるわけではありません。ドキュメントルートフォルダのような別の場所にドキュメントを配置してください。 – GolezTrol

+0

私はそれを試み、他の文書を試しました。また試しに書類を作っただけです。コマンドラインでOpen Officeを使って変換することができましたが、これを動作させたいと思います。 – mikelbring

0
  1. 上記の ファイル/パスでfile_existsを実行してみてください。
  2. これが機能する場合は、 file_get_contentsを試して、 を読むことができるかどうかを確認してください。

これがすべて動作していれば、権限/ etcに問題はありません。

+0

file_existsはファイルが存在することを示します – mikelbring

+0

そしてfile_get_contents? – GolezTrol

+0

is_readableを試してみてください - 結果は何ですか? – Harwood

関連する問題