0

我正在寻找一种轻松提取包含多个键的字符串的方法。该字符串是 curl 标头响应的结果

echo $response['body'];
// status=2 reason=Invalid tariff/currency

期望的结果:

$status == '2';
$reason == 'Invalid tariff/currency';

或者

array (
    [status] => '2'
    [reason] => 'Invalid tariff/currency'
)
4

3 回答 3

0

给定上面的字符串,您可以创建局部变量$status$reason使用PHP 变量 variables。看看这段代码:

$str = 'status=2 reason=Invalid tariff/currency';

foreach (explode(' ', $str, 2) as $item) {
    list($key, $val) = explode('=', $item);
    $$key = $val;
}

// Now you have these
echo $status;  // 2
echo $reason;  // Invalid tariff/currency
于 2012-05-30T07:27:47.963 回答
0

大概是这样的吧?

$parts = explode(" ", $response['body'], 2);
foreach($parts as $part)
{
   $tmp = explode("=", $part);
   $data[$tmp[0]] = $tmp[1];
}

var_dump($data);
于 2012-05-30T07:22:38.950 回答
0

试试这个,它只适用于你的例子,如果你有可能从不同格式中提取数据,我建议最好使用 preg_match。

$response['body'] = "status=2 reason=Invalid tariff/currency";
$responseArray = explode(" ", $response['body'], 2);
foreach($responseArray as $key => $value){
    $requiredOutput = explode("=",$value);
    print_r($requiredOutput);
}
于 2012-05-30T07:29:39.247 回答