PHP-код для анализа информации о погоде Yahoo не работает при отрицательных градусах
У меня есть следующий код для анализа информации о погоде Yahoo:
$xml = simplexml_load_file('http://weather.yahooapis.com/forecastrss?w=868274&u=c');
$weatherInfo = $xml->channel->item->description;
$imagePattern = '/src="(.*?)"/i';
preg_match($imagePattern, $weatherInfo, $matches);
$imageSrc = $matches[1];
$degreesPattern = '/.*?, (\d+) C/i';
preg_match($degreesPattern, $weatherInfo, $matches);
$degrees = $matches[1];
echo $degrees;
Как я могу изменить синтаксический анализатор, чтобы он работал с отрицательными степенями?
Спасибо.
4
2 answers
Сделайте тире необязательным:
$degreesPattern = '/.*?, (-?\d+) C/i';
^^
Вы можете видеть из этой демонстрации , что она выводит:
-1
4
Author: nickb, 2012-12-10 13:28:14
Это хорошо работает с codeigniter2.1.4 вставить в файл представления.прямой
<?php
// weather City qalat-dizah
$xml = simplexml_load_file('http://weather.yahooapis.com/forecastrss?w=1977965&u=c');
$weatherInfo = $xml->channel->item->description;
$imagePattern = '/src="(.*?)"/i';
preg_match($imagePattern, $weatherInfo, $matches);
$imageSrc = $matches[1];
echo img($imageSrc) .'<br/>';
$degreesPattern = '/.*?, (-?\d+) C/i';
preg_match($degreesPattern, $weatherInfo, $matches);
$degrees = $matches[1];
echo $degrees .'<br/>';
// end
?>
1
Author: user2698670, 2013-12-26 11:44:47