在我的一个Rails应用程序中,我需要从Ruby on Rails app的Controller执行一个PHP文件。 PHP文件用于某些数据库编辑。
位于我的“公共”文件夹中的php文件
有没有办法做到这一点?
答案 0 :(得分:2)
尝试`php#{RAILS_ROOT} / public / php_script.php`或%x [“php#{RAILS_ROOT} /public/php_script.php”]
系统命令在rails中不起作用,但是上面的一些代码应该没问题。
答案 1 :(得分:2)
如果您想以某种方式与流程进行对话,请使用IO.popen("php <script>")
。或者您可以使用反引号选项(此处标记不容易),它返回进程写入stdout的字符串。如果您不需要通信,system "php <script>"
会在命令成功的任何地方返回true或false,并且您没有机会进一步沟通。
如果您有不安全的输入,请使用Array#shelljoin
来逃避它。
为什么不在ruby中重写脚本?
答案 2 :(得分:1)
嗯,system('php public/php_script.php')
有效吗?
答案 3 :(得分:1)
我的控制器中的这一行解决了我的问题
result = D:\\rails\\php\\php.exe -f D:\\Rails\\rails_apps\\project\\public\\df.php po