2011-01-11 2 views
2

Я пытаюсь использовать PHP с word.application для чтения файла. Он просто не откроет файл. Это соответствует правильной версии.Использование Office Word для чтения файлов doc с помощью PHP

$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

Документы-> Открыть возвращает документ, если все в порядке. Возможно, документ не существует (неверный путь), или у вас нет прав на его открытие с PHP. Сохраните результат в $ var, проверьте, имеет ли он соответствующее значение (возможно, not isset, null или false, если нет) и используйте $ var-> Content для чтения содержимого.

+0

Когда я храню его в $ var и echo $ var. Результат равен нулю. – mikelbring

+0

Это соответствует предположению, что документ не может быть открыт. Вам нужно будет выяснить, почему. Возможно, вы могли бы попробовать другие функции файлов в PHP, чтобы проверить, можно ли вообще найти файл, и если у вас есть разрешения, необходимые для открытия файла. Простое наблюдение за тем, что файл существует, не гарантирует, что вы также можете его открыть. Попробуйте поместить документ в другое место, например, в корневую папку вашего документа. – GolezTrol

+0

Я пробовал это и пробовал другие документы. Также сделаны документы, чтобы попробовать. Я смог преобразовать его с помощью Open Office через командную строку, но я хотел бы заставить это работать. – mikelbring

0
  1. Попробуйте сделать файл_exists на указанном файле/пути.
  2. Если это работает, попробуйте file_get_contents и посмотрите, можете ли вы прочитать его.

Если это все работает - тогда это не проблема с разрешениями/etc.

+0

file_exists показывает, что файл существует – mikelbring

+0

И file_get_contents? – GolezTrol

+0

попробуйте is_readable, затем - каковы результаты? – Harwood

Смежные вопросы