donglankui1263 2017-10-04 13:57
浏览 81
已采纳

PHP执行Ruby脚本并捕获JSON结果

I have to work with a Ruby script that is dependent on a Gem. When the script is executed a JSON object is returned.

I am successfully executing the script using the following code.

<?php

$ruby = 'ruby ruby/teams.rb';

$res = system($ruby);

var_dump(json_decode($res, true));

The following is an example response from ruby/teams.rb

{"status"=>"active", "teamId"=>"XPLFKS59PK" }

My problem is that this printed directly to the screen and is not capture in the variable $res. When using var_dump(json_decode($res, true)) I get null.

What I would like to be able to do is capture the JSON response in the $res variable so I can convert to an array and worth with the data.

Any ideas if this is possible?

  • 写回答

2条回答 默认 最新

  • dongqiang8683 2017-10-04 14:00
    关注

    My problem is that this printed directly to the screen and is not capture in the variable $res.

    Most likely it sends its output to stderr instead stdout, so you need to redirect the streams yourself like this:

    $ruby = 'ruby ruby/teams.rb 2>&1';
    

    Here more about stream redirection: http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-3.html

    Or, use exec() instead of system()

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 我的代码无法在vc++中运行呀,错误很多
  • ¥50 求一个win系统下运行的可自动抓取arm64架构deb安装包和其依赖包的软件。
  • ¥60 fail to initialize keyboard hotkeys through kernel.0000000000
  • ¥30 ppOCRLabel导出识别结果失败
  • ¥15 Centos7 / PETGEM
  • ¥15 csmar数据进行spss描述性统计分析
  • ¥15 各位请问平行检验趋势图这样要怎么调整?说标准差差异太大了
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
  • ¥15 wpf界面一直接收PLC给过来的信号,导致UI界面操作起来会卡顿
  • ¥15 init i2c:2 freq:100000[MAIXPY]: find ov2640[MAIXPY]: find ov sensor是main文件哪里有问题吗