从json

时间:2015-09-16 12:53:35

标签: php json

假设我有一个json文件:

  {  
   "query":[  
      {  
         "pid":"abc"
      },
      {  
         "status":"cde"
      },
      {  
         "uname":"{{user->username}}"
      },
      {  
         "pass":"{{user->password}}"
      }
   ]
}

假设我使用json_decode将其转换为php数组,在{{类变量之间提取值的最简单方法是什么?数组的其余部分是constans。

或许有一个工具可以将动态变量/参数放入json文件中,并将它们轻松地提取到php中....

我使用Laravel 5.1作为框架。目的是配置系统,用于设置到不同API (serviceabs.json,serviceefg.json)的API连接,以从中获取不同的数据。现在这些API具有不同的身份验证机制....而且我也不想将这些机密数据放入json文件中,而是“注入”它......然后当数据准备就绪时,使用guzzle客户端来设置连接。 (填写用户名,密码等后)

所以例如,这里的“查询”数组将用作guzzle客户端的GET查询。

1 个答案:

答案 0 :(得分:2)

可以优化,但请尝试:

$in = "hello {{world}} I am a {{fox}} my name is {{user->username}}";
preg_match_all('/\{\{([A-Za-z0-9 ->]+?)\}\}/', $in, $out);
print_r($out[1]);

输出:

Array ( [0] => world [1] => fox [2] => user->username )

你的案子应该是:

$in = '{{user->username}}';
preg_match_all('/\{\{([A-Za-z0-9 ->]+?)\}\}/', $in, $out);
if(isset($out[1])) {
    //there are matched within brackets 
    echo $out[1][0];  // will output: user->username
}