2

我有以下网站: http ://stationmeteo.meteorologic.net/metar/your-metar.php?icao=LFRS&day=070308

我想从中提取数据。我尝试使用 file_get_contents 和一些正则表达式,但有些东西不起作用。

这是我试过的代码:

$content=file_get_contents('http://stationmeteo.meteorologic.net/metar/your-metar.php? icao=LFMN&day=010513');

preg_match('/00\:30 07\/03\/2008(.+)01\:30 07\/03\/2008/',$content,$m);
echo $m[0];
echo $m[1];

它给了我未定义的偏移量 0 和 1。如果我将网页的内容直接复制到 $content 而不是使用 file_get_contents,它可以正常工作。

我错过了什么?

4

1 回答 1

2

问题是.+匹配除换行符以外的任何字符,并且您尝试匹配的文本中有换行符。

尝试

preg_match('~00:30 07/03/2008(.+)01:30 07/03/2008~s',$content,$m);

~顺便说一下,用作分隔符,这样您就不必转义所有这些斜线)

下一个问题是:为什么我直接把网页内容复制到里面没有这个问题$content?好吧,当呈现网页时,所有空格都被规范化为单个空格,将\n页面源代码中存在的空格(按 Ctrl-U 查看)变成一个简单的空格。并.+匹配那个空间。

于 2013-05-31T12:12:30.963 回答