我正在使用雅虎!天气 RSS 提要以获得我所在城镇的天气预报。我可以解析 XML 并获取天气描述,但随后我得到如下结果:
<img src="http://l.yimg.com/a/i/us/we/52/11.gif"/><br />
<b>Current Conditions:</b><br />
Light Rain, 18 C<BR />
<BR /><b>Forecast:</b><BR />
Tue - PM Thundershowers. High: 25 Low: 16<br />
Wed - Rain. High: 23 Low: 17<br />
<br />
<a href="http://us.rd.yahoo.com/dailynews/rss/weather/Constanta__RO/*http://weather.yahoo.com/forecast/ROXX0034_c.html">Full Forecast at Yahoo! Weather</a><BR/><BR/>
(provided by <a href="http://www.weather.com" >The Weather Channel</a>)<br/>
我的正则表达式技能几乎为零,因此我请求一些帮助来解析以下信息:
- 第一行中 img src 的链接
- 第三行的级数(C 之前)
谢谢。
最佳答案
这将获取img源:
src="(.*?)"
只需获取第一组(括号之间的区域)
这将获得学位:
.*?, (\d+) C
同样,只需获取第一组即可。
$input = '<img src="http://l.yimg.com/a/i/us/we/52/11.gif"/><br />'.
"<b>Current Conditions:</b><br />".
"Light Rain, 18 C<BR />".
"<BR /><b>Forecast:</b><BR />".
"Tue - PM Thundershowers. High: 25 Low: 16<br />".
"Wed - Rain. High: 23 Low: 17<br />".
"<br />".
'<a href="http://us.rd.yahoo.com/dailynews/rss/weather/Constanta__RO/*http://weather.yahoo.com/forecast/ROXX0034_c.html">Full Forecast at Yahoo! Weather</a><BR/><BR/>'.
'(provided by <a href="http://www.weather.com" >The Weather Channel</a>)<br/>';
$imgpattern = '/src="(.*?)"/i';
preg_match($imgpattern, $input, $matches);
$imgsrc = $matches[1];
$degpattern = '/.*?, (\d+) C/i';
preg_match($degpattern, $input, $matches);
$degs = $matches[1];
关于php - 解析来自 Yahoo! 的某些信息天气 RSS 源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3089363/