Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: php5 и COM
Форумы портала PHP.SU » PHP » Программирование на PHP » php5 и COM

Страниц (1): [1]
 

1. Sneg - 29 Марта, 2007 - 12:57:54 - перейти к сообщению
в мануалах по установке пхп5 написано (цитата), "Версия PHP5 для Windows имеет встроенную поддержку данного расширения. Это означает, что для использования данных функций не требуется загрузка никаких дополнительных расширений."
но при попытке реализовать кае-либо сом-соединение выдается ошибка.
например соединение с word'ом
код стандартный пример (причем на php4.3 работает):
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.    $word=new COM("Word.application") or die("Couldn't start Word!");
  3.   // смотрю что $word из себя представляет
  4.    print_r($word) ;        echo"<br>";
  5.    var_export($word);      echo"<br>";
  6.    var_dump($word);        echo"<br>";
  7.  // далее стандартный пример
  8.    $word->visible =true;
  9.    $word->Activate();
  10.    $word->Documents->Add("c:bpl_por.dot");
  11.    $bkm[1]="nomer";
  12.    $bkm[2]="data";
  13.    $bkm[3]="summa";
  14.    for($i=1; $i<=3; $i++)
  15.    {
  16.    if ($word->ActiveDocument->Bookmarks->Exists($bkm[$i]."1"))
  17.       {  $word->ActiveDocument->Bookmarks[$bkm[$i]."1"]->Select();
  18.        
  19.        $word->Selection->InsertAfter("123");
  20.    }
  21.    if ($word->ActiveDocument->Bookmarks->Exists($bkm[$i]."2"))
  22.    
  23.    {  $word->ActiveDocument->Bookmarks[$bkm[$i]."2"]->Select();
  24.        $word->Selection->InsertAfter($$bkm[$i]);
  25.    }
  26.    }
  27.   $fname="".uniqid("w").".doc";
  28.    echo $fname;
  29.    $word->ActiveDocument->SaveAs("C:Program FilesApache GroupApachehtdocsword".$fname);
  30.    $word->Quit();
  31.    $word->release() ;
  32.    header ("Location: http://127.0.0.1/word/".$fname);
  33.  
  34. ?>


в результате в браузере:
Цитата:
com Object
com::__set_state(array( ))
object(com)#1 (0) { }
Microsoft Word


Цитата:
Fatal error: Uncaught exception 'com_exception' with message '<b>Source:</b> Microsoft Word<br/><b>Description:</b> &#205;&#229; &#243;&#228;&#224;&#229;&#242;&#241;&#255; &#224;&#234;&#242;&#232;&#226;&#232;&#231;&#232;&#240;&#238;&#226;&#224;&#242;&#252; &#239;&#240;&#232;&#235;&#238;&#230;&#229;&#237;&#232;&#229;' in C:Program FilesApache GroupApachehtdocsword_com.php:21 Stack trace: #0 C:Program FilesApache GroupApachehtdocsword_com.php(21): com->Activate() #1 {main} thrown in C:Program FilesApache GroupApachehtdocsword_com.php on line 21
///


может кто подскажет что? может как-то по-другому php.ini надо конфигурировать, чтобы СОМ работало правильно?
2. Sneg - 30 Марта, 2007 - 18:40:01 - перейти к сообщению
вопрос снят: дело было в версии PHP , поставила 4.6 все заработало.
3. -SCHATTEN- - 30 Марта, 2007 - 20:38:27 - перейти к сообщению
Дело было не в версии а в настройках файла php.ini скорее всего там просто это было выключено. а убрать это из РНР 5 никто немог !
4. Sneg - 01 Апреля, 2007 - 06:47:21 - перейти к сообщению
это понятно, что в .ini дело - но где именно, те настройки, которые надо сделать.
все, что непосредственно были выделены в блок [COM] - я перепробовала - но так толком не получилось. - вот и спрашивала - может, кто подскажет, КАК настроить .ini для PHP5, чтобы можно было с СОМом работать)))...
5. san4es - 18 Июня, 2010 - 14:45:33 - перейти к сообщению
Sneg пишет:
КАК настроить .ini для PHP5, чтобы можно было с СОМом работать)))

присоединяюсь. скрипт в редакторе работает на сервере нет - выдаёт ошибку 500.
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  // запускаем Word
  3. $word = new COM("word.application") or die("Ошибка запуска Word");
  4. echo "Word запушен, версия {$word->Version}\n";
  5.  
  6. // поверх всех окон?
  7. $word->Visible = 1;
  8.  
  9. // создаём пустой документ
  10. $word->Documents->Add();
  11. // что-то пишем
  12. $word->Selection->TypeText(iconv('utf-8','windows-1251', 'проверка печати скриптом'));
  13. // или просто открываем существующий
  14. //$word->Documents->Open(realpath('test.doc'));
  15. // отправляем на печать
  16. $word->Documents[1]->PrintOut();
  17. // закрываем без лишних диалогов
  18. $word->Documents[1]->Close(0);
  19. // выход из Word
  20. $word->Quit();
  21.  
  22. // очистка экземпляра COM
  23. $word = NULL;
  24. ?>
6. EuGen - 18 Июня, 2010 - 17:38:28 - перейти к сообщению
Прошло 3 года.. как думаете, тема еще актуальна?

 

Powered by ExBB FM 1.0 RC1