我想在我的网站上显示温度。我在json中有一个预测,我从api得到了这个字段,我需要得到温度:
“fcttext_metric”:“主要是晴朗的天空。高温接近30°C。风速为10至15公里/小时。”
我试图只解析浮动数字,但效果很好,但是当它背后有更多文本时它会失败,就像上面的情况一样。我试图只显示前2个字符,但当温度为负时它会再次失败。我该怎么办?
$str = 'A mainly sunny sky. High near 30 ° C. Winds SE at 10 to 15 km/h.';
$deg = filter_var($str, FILTER_SANITIZE_NUMBER_FLOAT);
$res = substr($deg, 0, 2);
print_r($res);
答案 0 :(得分:1)
我会使用这个正则表达式。它应该在°(& deg)符号之前匹配整数值。像30或-30
preg_match('/(\-?\d+)\s*°/', $str, $matches);
echo $matches[1];