我试图解析服务器的简单响应并使用其值.
我能够获得如下所需的信息:
实际回应:
AccountID=0&Authenticated=1&ResponseCode=0&ResponseText=Success
Run Code Online (Sandbox Code Playgroud)
我需要的是单独的值:
我的代码到目前为止:
$tempValue = explode("\n", $response);
foreach($tempValue as $row => $data)
{
//get row data
$row_data = explode('&', $data);
$row_internal = explode('=', $row_data);
$info2[$row]['id'] = $row_internal[0];
$info2[$row]['name'] = $row_internal[1];
$info2[$row]['description'] = $row_internal[2];
$info[$row]['id'] = $row_data[0];
$info[$row]['name'] = $row_data[1];
$info[$row]['description'] = $row_data[2];
echo 'Account ID: ' . $info[$row]['id'] . '<br />';
echo 'Authenticated: ' . $info[$row]['name'] . '<br />';
echo 'Response Code: ' . $info[$row]['description'] . '<br />';
echo '<br></br>';
echo 'Account ID: ' . $info2[$row]['id'] . '<br />';
echo 'Authenticated: ' . $info2[$row]['name'] . '<br />';
echo 'Response Code: ' . $info2[$row]['description'] . '<br />';
}
Run Code Online (Sandbox Code Playgroud)
以上代码的结果:
Account ID: AccountID=0
Authenticated: Authenticated=1
Response Code: ResponseCode=0
Account ID:
Authenticated:
Response Code:
Run Code Online (Sandbox Code Playgroud)
我需要的只是字段的值,如:
Account ID: 0
Authenticated: 1
Response Code: 0
Run Code Online (Sandbox Code Playgroud)
如果这是一个查询字符串响应,那么不需要爆炸,有一个更好的工具可以很好地处理这个问题.
只是用parse_str().
简单的一行响应示例:
$response = 'AccountID=0&Authenticated=1&ResponseCode=0&ResponseText=Success';
parse_str($response, $data);
echo '<pre>';
print_r($data);
Run Code Online (Sandbox Code Playgroud)
或者,如果响应看起来像这样的多行字符串,您可以应用它:
$response = "AccountID=1&Authenticated=1&ResponseCode=0&ResponseText=Success
AccountID=2&Authenticated=1&ResponseCode=0&ResponseText=Success
AccountID=3&Authenticated=1&ResponseCode=0&ResponseText=Success
";
$responses = explode("\n", $response);
foreach ($responses as $key => $value) {
parse_str($value, $data);
if(!empty($data)) {
echo 'Account ID: '.$data['AccountID'] .'<br/>';
echo 'Authenticated: '.$data['Authenticated'] .'<br/>';
echo 'Response Code: '.$data['ResponseCode'] .'<br/>';
echo 'Response Text: '.$data['ResponseText'] .'<br/>';
echo '<br/>';
}
}
Run Code Online (Sandbox Code Playgroud)