Запустить php скрипт в ruby ​​на рельсах - PullRequest
4 голосов
/ 01 декабря 2011

В одном из моих приложений на Rails мне нужно выполнить PHP-файл из приложения Controller of Ruby on Rails. Файл PHP предназначен для некоторого редактирования базы данных.

Файл php, расположенный в моей «публичной» папке

Есть ли способ сделать это?

Ответы [ 4 ]

2 голосов
/ 01 декабря 2011

Попробуйте `php # {RAILS_ROOT} / public / php_script.php` или% x [" php # {RAILS_ROOT} /public/php_script.php "]

Системная команда не работает в рельсах, но некоторый код, подобный приведенному выше, должен быть в порядке.

2 голосов
/ 01 декабря 2011

Если вы хотите как-то поговорить с процессом, используйте IO.popen("php <script>").Или вы можете использовать опцию backticks (это нелегко с разметкой здесь), которая возвращает строку, которую процесс записывает в stdout.Если вам не нужно общение, system "php <script>" возвращает вам истину или ложь, где бы команда ни выполнялась, и у вас нет шансов на дальнейшее общение.

Если у вас небезопасный ввод, используйте Array#shelljoin для его выхода.1008 *

Почему бы не переписать скрипт в ruby?

1 голос
/ 02 декабря 2011

Моя проблема решена с помощью этой строки в моем контроллере

result = D:\\rails\\php\\php.exe -f D:\\Rails\\rails_apps\\project\\public\\df.php po

1 голос
/ 01 декабря 2011

хорошо, system('php public/php_script.php') работает?

...