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 使用C#,asp.net读取Excel文件并保存到Oracle数据库
  • ¥15 C# datagridview 单元格显示进度及值
  • ¥15 thinkphp6配合social login单点登录问题
  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 虚心请教几个问题,小生先有礼了
  • ¥30 截图中的mathematics程序转换成matlab