2015-12-11 3 views
1

У меня есть сценарий оболочки, написанный, который будет использовать LibreOffice для преобразования файла docx в pdf. Это прекрасно работает. То, что я пытаюсь сделать, - это как-то вызвать этот сценарий оболочки из моего контроллера CodeIgniter, чтобы он запускался каждый раз, когда вызывается контроллер.Можно ли вызвать сценарий оболочки изнутри контроллера CodeIgniter?

В настоящее время, я попытался:

Мой сценарий оболочки "convert_to_pdf":

cd /applications/libreoffice.app/contents/macos 
./soffice --headless --convert-to pdf --outdir /applications/mamp/htdocs/convert /applications/mamp/htdocs/convert/testDoc.docx 

Мой контроллер содержит это, который я пытался использовать, чтобы запустить скрипт:

shell_exec("/usr/local/bin/convert_to_pdf"); 

Я новичок во всем этом, поэтому я даже не уверен, что это возможно. Я знаю, что сценарий оболочки работает, когда я запускаю его с терминала, но я не могу заставить его использоваться в контроллере. Есть идеи?

Спасибо за помощь заблаговременно!

EDIT

я получил эту работу, используя следующие в моем контроллере:

exec('cd /applications/libreoffice.app/contents/macos/ && ./soffice --headless --convert-to pdf --outdir /applications/mamp/htdocs/convert /applications/mamp/htdocs/convert/testDoc.docx', $output, $return); 

Однако, я немного беспокоюсь о проблемах безопасности, связанных с этим. Есть что-то, чего я не хватает?

ответ

1

Возможно, вы можете попробовать проверить, что является результатом этого выполнения, чтобы попытаться выяснить, что происходит, и проверить, помогает ли это. shell_exec

<?php 
$output = shell_exec('/usr/local/bin/convert_to_pdf'); 
echo "<pre>$output</pre>"; 
+0

Я попробовал, что только сейчас, и нет ничего вернулся. Просто теги. Я также гарантировал, что shell_exec включен, так что это не так. Вы знаете, правильно ли я использую shell_exec? – jldavis76

+0

Имеет ли сценарий 'convert_to_pdf' правильные разрешения? Попробуйте 755 –

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