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 :: Версия для печати :: Передать ключи во внешнею программу
Форумы портала PHP.SU » » Операционная система и системные вызовы » Передать ключи во внешнею программу

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

1. naruto - 02 Августа, 2012 - 15:20:21 - перейти к сообщению
Здравствуйте! Есть установленный в Windows 7 Inkscape. В PATH указан путь до него, поэтому с консоли для конвертации texs.svg в test.pdf достаточно написать "inkscape -T d:\test.svg -A d:\test.pdf". Как все это провернуть из скрипта php?

PHP:
скопировать код в буфер обмена
  1.  
  2. $filename = "D://text.svg"; //path to SVG file
  3. $pdf_filename="D://text.pdf"; // output PDF
  4.  
  5. if(!file_exists($filename)){
  6.   throw new Exception("{$filename} not exists!");
  7. }
  8.  
  9. system("inkscape -T $filename -A $pdf_filename", $success);
  10. if($success!=0){
  11.   throw new Exception('Error inkscape convertation!');
  12. }
  13.  


выдает ошибку Fatal error: Uncaught exception 'Exception' with message 'Error inkscape convertation!' in C:\localsites\www\converter\index.php:12 Stack trace: #0 {main} thrown in C:\localsites\www\converter\index.php on line 12. Заранее спасибо
2. DelphinPRO - 02 Августа, 2012 - 15:30:08 - перейти к сообщению
указывайте полный путь до программы
3. naruto - 02 Августа, 2012 - 15:37:51 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $filename = "D:/text.svg"; //path to SVG file
  4. $pdf_filename="D:/text.pdf"; // output PDF
  5. $inkscape = "C:/Program Files/Inkscape/inkscape.exe";
  6.  
  7. if(!file_exists($filename)){
  8.   throw new Exception("{$filename} not exists!");
  9. }
  10.  
  11. system("$inkscape -T $filename -A $pdf_filename",$success);
  12. if($success!=0){
  13.   throw new Exception('Error inkscape convertation!');
  14. }
  15.  
  16.  
  17. ?>
  18.  


Все равно ошибка..
4. Мелкий - 02 Августа, 2012 - 15:46:14 - перейти к сообщению
Воспользуйтесь exec и смотрите, что отвечает программа.
5. DelphinPRO - 02 Августа, 2012 - 15:51:31 - перейти к сообщению
ну елки-палки, пути с пробелами нужно указывать в кавычках (Program Files)
6. naruto - 02 Августа, 2012 - 16:04:03 - перейти к сообщению
если честно не очень понимаю что не так. в Документациях совсем мало инфы по ним, да и про пути не написано.
(Добавление)
Stack trace: #0 {main} гугл не выдает по ней ничего внятного
(Добавление)
Так?
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $filename = "D:/text.svg"; //path to SVG file
  4. $pdf_filename="D:/text.pdf"; // output PDF
  5. $inkscape = "C:/'Program Files'/Inkscape/inkscape";
  6.  
  7. if(!file_exists($filename)){
  8.   throw new Exception("{$filename} not exists!");
  9. }
  10.  
  11. exec("$inkscape -T $filename -A $pdf_filename",$success);
  12. if($success!=0){
  13.   throw new Exception('Error inkscape convertation!');
  14. }
  15.  
  16.  
  17. ?>
  18.  
7. DelphinPRO - 02 Августа, 2012 - 19:10:13 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. exec("\"C:/Program Files/Inkscape/inkscape.exe\" -T $filename -A $pdf_filename",$success);

 

Powered by ExBB FM 1.0 RC1