为什么PHP正则表达式不返回数组?

时间:2015-10-28 16:05:32

标签: php arrays regex

我的代码应该返回一个包含天气摘要的数组,但不会。

我该如何使这项工作?

这是我正在进行的$contents=file_get_contents("http://www.weather-forecast.com/locations/San-Francisco/forecasts/latest"); preg_match('3 Day Weather Forecast Summary:<\/b><span class="phrase">(.*?)</s', $contents, $matches); print_r($matches); 课程的一部分;我的代码与我的教师完全匹配,但不会返回相同的结果。

我没有发现任何语法错误,所以还有其他东西我要么缺少要么没有...

{{1}}

1 个答案:

答案 0 :(得分:0)

你必须在正则表达式周围添加一些分隔符,以便从(可能的)修饰符中分离出来。 你可以使用你想要的任何字符 - 即/ - 但是当你在你的正则表达式中使用这个字符时,使用不同的字符可能更容易,比如代字号~

$contents=file_get_contents("http://www.weather-forecast.com/locations/San-Francisco/forecasts/latest");

preg_match('~3 Day Weather Forecast Summary:<\/b><span class="phrase">(.*?)</s~', $contents, $matches);

print_r($matches);

刚刚测试了你的正则表达式,看起来,页面的html与你的表达不匹配。我稍微修改了它如下:

3 Day Weather Forecast Summary:<\/b>.*?<span class="phrase">([^<]+)