首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >返回JSON的php命令

返回JSON的php命令
EN

Stack Overflow用户
提问于 2015-04-02 19:02:19
回答 2查看 2.6K关注 0票数 0

我已经编写了一个脚本,在shell上执行JSON输出时返回它。

代码语言:javascript
复制
{
  "count": 1,
  "virtualmachine": [
    {
      "account": "admin",
      "affinitygroup": [],
      "cpunumber": 2,
      "cpuspeed": 1000,
      "created": "2015-04-02T12:11:41-0400",
      "details": {
        "hypervisortoolsversion": "xenserver56"
      },
      "diskofferingid": "6fec5275-9ec3-4033-8052-b743b3f89303",
      "diskofferingname": "Medium",
      "zoneid": "60763583-8ab3-436e-8acd-87c783729cdc",
      "zonename": "Toronto"
    }
  ]
}

当我从我的php代码运行这个shell命令时,我无法打印这个输出。

代码语言:javascript
复制
exec('cloud_query " list virtualmachines listall=true account=$user"', $outputArray);
print_r ($outputArray, false);

我得到以下信息:

代码语言:javascript
复制
Array
(
    [0] => {
    [1] =>   "count": 1,
    [2] =>   "virtualmachine": [
    [3] =>     {
    [4] =>       "account": "admin",
    [5] =>       "affinitygroup": [],
    [6] =>       "cpunumber": 2,
    [7] =>       "cpuspeed": 1000,
    [8] =>       "created": "2015-04-02T12:11:41-0400",
    [9] =>       "details": {
    [10] =>         "hypervisortoolsversion": "xenserver56"
    [11] =>       },
    [12] =>       "diskofferingid": "6fec5275-9ec3-4033-8052-b743b3f89303",
    [13] =>       "diskofferingname": "Medium",
    [52] =>       "serviceofferingid": "76d3bacc-eba4-4080-ba72-7c0b524f8027",
    [53] =>       "serviceofferingname": "Large Instance",
    [54] =>       "state": "Running",
    [55] =>       "tags": [],
    [56] =>       "templatedisplaytext": "ubuntu-12.04.4-server-amd64",
    [57] =>       "templateid": "cbd3ceb0-b615-440e-a0fa-dbcaa234cb8f",
    [58] =>       "templatename": "ubuntu-12.04.4-server-amd64",
    [59] =>       "zoneid": "60763583-8ab3-436e-8acd-87c783729cdc",
    [60] =>       "zonename": "Toronto"
    [61] =>     }
    [62] =>   ]
    [63] => }
)

如何从shell命令中删除数组并打印普通的JSON?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-04-02 19:17:58

您正在将exec-ed命令的输出捕获到一个行数组。要将其转换为字符串,只需使用换行符连接其所有值:

代码语言:javascript
复制
implode("\n", $outputArray);
票数 2
EN

Stack Overflow用户

发布于 2015-11-19 10:16:30

指定的数组将填充命令的每一行输出。

要将这一用途分开:

代码语言:javascript
复制
echo implode("\n", $output);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29420513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档