Была поставлена задача: сделать вывод текущей погоды на одном из сайтов. Сайтом, отдающим данные о погоде в виде формата *. xml , был выбран Яндекс . Погода . Файл доступен по адресу: export.yandex.ru/weather/?city=XXXXX. Где XXXXX — это ID города.
<?php $pogoda = file_get_contents('http://export.yandex.ru/weather/?city=ХХХХХ'); ## ХХХХХ — id города preg_match('/<weather_type>(.*?)<\/weather_type>/i',$pogoda,$type); preg_match('/<dampness>(.*?)<\/dampness>/i',$pogoda,$vlaga); preg_match('/<temperature>(.*?)<\/temperature>/i',$pogoda,$temp); preg_match('/<image2>(.*?)<\/image2>/i',$pogoda,$img2); preg_match('/<pressure>(.*?)<\/pressure>/i',$pogoda,$press); $vivod = "<img align=\"top\" src=\"$img2[1]\" alt=\"$type[1]\" />$temp[1] °C $type[1]<br /> Влажность: $vlaga[1] %<br /> Давление: $press[1] мм рт.ст."; echo $vivod; ?>
Поиграв с CSS, можно добиться разнообразного оформления. У меня вот так:
Добавлено позже: Яндекс . Погода теперь не отдает в файле *. xml картинку. А показывает пустую, не загруженную дырку. Все пиктограммы погоды переехали на новый адрес внутри Яндекса : img.yandex.net, а вот имена пиктограмм остались прежними. Например: weather.yandex.ru/i/n6.png — не откроется, а вот img.yandex.net/i/n6.png — откроется. Решений море. Я делаю очень тупо: взял текущий адрес картинки, отрезал часть адреса > подставил ту часть, которую надо мне > показал.
<?php $imgp = substr($img2[1], 24); $vivod = "<img align=\"top\" src=\"//img.yandex.net$imgp\" alt=\"$type[1]\" />" ## вывод прочих данных ?>