2016-05-26 3 views
-1

Я пытаюсь получить ПОГОДА данные http://www.weather-forecast.com/locations/Berlin/forecasts/latestpreg_match ничего не возвращает

но preg_match просто ничего не возвращает

<?php 
 

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

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

 

 

 

 
print_r($matches) 
 

 

 
?>

+1

Для начала это '3-дневный прогноз погоды:' не '3Day Прогноз погоды:'. Вы должны изучить использование анализатора, и/или API погоды. Вот тот, который я использовал, http://apidev.accuweather.com/developers/. – chris85

+0

Вместо этого попробуйте DOMDocument. Разбор HTML с регулярными выражениями очень сложно получить правильно, а полученный код трудно поддерживать. –

+0

@choz Вы можете прочитать URL-адрес, используя 'file_get_contents' – Justinas

ответ

2

Не используйте регулярное выражение для разбора HTML , пользователь html-парсер, например DOMDocument,

$contents = file_get_contents("http://www.weather-forecast.com/locations/Berlin/forecasts/latest"); 
$dom = new DOMDocument(); 
libxml_use_internal_errors(true); 
$dom->loadHTML($contents); 
$x = new DOMXpath($dom); 
foreach($x->query('//span[contains(@class,"phrase")]') as $phase) 
{ 
    echo $phase->textContent; 
} 
Смежные вопросы