如何使用PHP处理HTTP API响应

时间:2014-10-29 09:21:07

标签: php json api httpwebresponse

我正在处理一些以下列格式处理HTTP API响应的Web项目:

{response_header1=value1,response_header2,value2,response_header3=value3,response_header4=,response_header5=value5}

error xxx,err_desc=Invalid password

这些回复看起来不像标准XMLJSON格式。我想知道在PHP中处理这类响应的最佳方法是什么。

2 个答案:

答案 0 :(得分:0)

您可能需要使用正则表达式编写自定义转换器,或者需要在代码中进行转换。以下是没有正则表达式的内联转换示例:

$incoming = "{response_header1=value1,response_header2=value2,response_header3=value3,response_header4=,response_header5=value5}";
$splitted = explode(",", trim($incoming,'{}'));

$values = array();
foreach($splitted as $split) {
    $exploded = explode("=",$split);
    $values[$exploded[0]] = $exploded[1];
}

答案 1 :(得分:0)

以下代码将处理您作为标准响应发布的内容,该响应来自您正在使用的API:

$var = '{response_header1=value1,response_header2,value2,response_header3=value3,response_header4=,response_header5=value5}';
if(strpos($var, '}') !== false) {
    parse_str(str_replace(',','&',trim($var,'{}')), $var);
    var_export($var);
} else {
    echo 'error';
}

如果需要处理特定的错误值,可以在我放置echo语句的位置访问和解析它们。我所做的是删除左右斜体括号,然后将整个字符串转换为标准URL查询,该查询由parse_url命令解析并存储为key =>值集(如访问$名为$var的变量中的_POST或$ _REQUEST vars) - 您可以从var_export($var)命令中看到此结果。

这也比explode

快得多