在php数组中格式化服务器的响应

时间:2019-01-08 14:06:42

标签: php variables

我正在设置与Verotel集成的新服务,我需要将来自服务器的响应格式化为PHP数组。

我已经测试了一些用于格式化Respnse的代码,但是我可以做到。 Mi代码获得响应是这样的:

$url= $statusURL;
 $ch = curl_init();
 curl_setopt($ch, CURLOPT_URL, $url);
 curl_setopt($ch, CURLOPT_HEADER, 0);
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 $result=curl_exec($ch);
 curl_close($ch); 
 echo (array($result));

我从服务器得到以下响应:

response: FOUND

shopID: 114500
paymentMethod: Credit Card
priceAmount: 20
priceCurrency: USD

type: purchase

,我需要将其格式化为PHP数组。

2 个答案:

答案 0 :(得分:0)

  • 第一种方法:这是yaml格式,您可以使用yaml_parse来解析它(您需要安装yaml扩展名)。
  • 第二:读为行,然后确定行是否为空,explode如果不为空,然后将结果放入数组。

答案 1 :(得分:0)

我已经修改了代码,现在看起来像:

 $url= $statusURL;
 $ch = curl_init();
 curl_setopt($ch, CURLOPT_URL, $url);
 curl_setopt($ch, CURLOPT_HEADER, 0);
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 $result=curl_exec($ch);
 curl_close($ch);
 echo ($result);
 $var2 = array("\n\n", "\n");
 $var=str_replace($var2,'","', $result);
 $var=str_replace(': ','"=>"', $var);
 var_dump($var);

现在我得到以下格式化的响应:

string(542) "response"=>"FOUND",
"shopID"=>"114574",
"paymentMethod"=>"Credit Card",
"priceAmount"=>"20",
"priceCurrency"=>"USD",
"type"=>"purchase",
"description"=>"Snapchat Básico un Mes",
"referenceID"=>"",
"saleID"=>"17344498",
"saleResult"=>"APPROVED",
"name"=>"test user",
"email"=>"ss@ss.es",
"country"=>"ES","",""

我如何获取值?

echo $var->name;

Thnx!