我有以下格式PHP字符串得到的變量值,
$msg=Temp:29.6 C RH:57 % WD:29 Deg WS: 0.6 Kts SLP:1005.4 hPa Rain:0.0 mm
我有PHP字符串,需要提到
我的問題是如何獲得的變量值?
我有以下格式PHP字符串得到的變量值,
$msg=Temp:29.6 C RH:57 % WD:29 Deg WS: 0.6 Kts SLP:1005.4 hPa Rain:0.0 mm
我有PHP字符串,需要提到
我的問題是如何獲得的變量值?
如果您的字符串存在於變量$ temp
例如, $ temp ='$ msg =溫度:29.6℃RH:57%WD:29℃WS:0.6Kts SLP:1005.4hPa雨:0.0mm';
then $ msg = str_replace('$ msg =','',$ temp);
會給你在$ msg變量中的慾望輸出值。
通過從值和單位中刪除空格來創建一個新字符串。它應該如下所示。
$msg=Temp:29.6C RH:57% WD:29Deg WS:0.6Kts SLP:1005.4hPa Rain:0.0mm
使用爆炸()函數
$msgarray = explode(" ", $msg);
it will return $msgarray[0]=Temp:29.6C and so on...
for($i=0;$1<count(&msgarray);i++
{
$temp = explode(":", $msgarray[i]);
$key = $temp[0];
$value = $temp[1];
$output[key] = $value;
}
echo '<pre>';
print_r($output);
$輸出數組將包含與該鍵相關聯的鍵和值爆炸的字符串。這將是一個關聯數組$輸出數組會像下面
$output['Temp'] = 29.6C
$output['RH'] = 57%
$output['WD'] = 29Deg
$output['WS'] =0.6Kts
$output['SPL'] =1005.4hPa
$output['Rain'] = 0.0mm
可以使用preg_match_all
:
$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"
}