【问题标题】:Extract keys from string containing multiple keys从包含多个键的字符串中提取键
【发布时间】:2012-05-30 07:18:26
【问题描述】:

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

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

想要的结果:

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

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

【问题讨论】:

标签: php


【解决方案1】:

大概是这样的吧?

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

var_dump($data);

【讨论】:

    【解决方案2】:

    试试这个,它只适用于你的例子,如果你有可能从不同格式中提取数据,我建议最好使用 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);
    }
    

    【讨论】:

      【解决方案3】:

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

      $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
      

      【讨论】:

        猜你喜欢
        • 2014-04-17
        • 1970-01-01
        • 1970-01-01
        • 2012-05-09
        • 2020-01-04
        • 1970-01-01
        • 2016-06-24
        • 1970-01-01
        相关资源
        最近更新 更多