我有PHP字符串,需要获取变量中的值,如前所述

我有PHP字符串,需要获取变量中的值,如前所述,php,string,get,integer,Php,String,Get,Integer,我有以下格式的PHP字符串, $msg=温度:29.6摄氏度相对湿度:57%WD:29摄氏度WS:0.6千吨标准高度:1005.4百帕雨量:0.0毫米 我的问题是如何获取变量中的值?如果您的字符串存在于变量$temp中 e、 g。 $temp='$msg=temp:29.6摄氏度相对湿度:57%WD:29摄氏度WS:0.6千吨标准高度:1005.4百帕雨量:0.0毫米' 然后 $msg=str_replace(“$msg=”,“$temp”) 将在$msg变量中为您提供所需的输出值。通过删除值和

我有以下格式的PHP字符串,
$msg=温度:29.6摄氏度相对湿度:57%WD:29摄氏度WS:0.6千吨标准高度:1005.4百帕雨量:0.0毫米


我的问题是如何获取变量中的值?

如果您的字符串存在于变量$temp中

e、 g。 $temp='$msg=temp:29.6摄氏度相对湿度:57%WD:29摄氏度WS:0.6千吨标准高度:1005.4百帕雨量:0.0毫米'

然后 $msg=str_replace(“$msg=”,“$temp”)


将在$msg变量中为您提供所需的输出值。

通过删除值和单位中的空格来创建新字符串。它应该是如下所示

$msg=Temp:29.6C RH:57% WD:29Deg WS:0.6Kts SLP:1005.4hPa Rain:0.0mm
使用Explode()函数分解字符串


您可以使用
preg\u match\u all

array(5) {
  ["Temp"]=>
  string(6) "29.6 C"
  ["RH"]=>
  string(4) "57 %"
  ["WD"]=>
  string(6) "29 Deg"
  ["SLP"]=>
  string(10) "1005.4 hPa"
  ["Rain"]=>
  string(7) "0.0  mm"
}
$output['Temp'] = 29.6C
$output['RH'] = 57%
$output['WD'] = 29Deg
$output['WS'] =0.6Kts
$output['SPL'] =1005.4hPa
$output['Rain'] = 0.0mm
$msg = 'Temp:29.6 C  RH:57 %  WD:29 Deg  WS: 0.6 Kts  SLP:1005.4 hPa  Rain:0.0  mm';

preg_match_all('/([a-z]+):([0-9]+\.?[0-9]+?[\s]{1,2}[a-z%]+)/i', $msg, $matches);

$values = array_combine($matches[1], $matches[2]);

echo '<pre>';
var_dump($values);
echo '</pre>';
array(5) {
  ["Temp"]=>
  string(6) "29.6 C"
  ["RH"]=>
  string(4) "57 %"
  ["WD"]=>
  string(6) "29 Deg"
  ["SLP"]=>
  string(10) "1005.4 hPa"
  ["Rain"]=>
  string(7) "0.0  mm"
}