|
|
|
| Вот код.
<?php
$text = file_get_contents("http://informer.gismeteo.ru/xml/26850_1.xml");
$pattern = "|<FORECAST day=\"([\d]+)\" month=\"([\d]+)\" year=\"([\d]+)\" hour=\"([\d]+)\" tod=\"([\d]+)\" predict=\"([\d]+)\" weekday=\"([\d]+)\".*<PRESSURE max=\"([\d]+)\" min=\"([\d]+)\".*<TEMPERATURE max=\"([^\"]+)\" min=\"([^\"]+)\".*<WIND min=\"([^\"]+)\" max=\"([^\"]+)\" direction=\"([^\"]+)\"|isU";
$text = preg_match_all($pattern, $text, $out);
for($i = 0; $i < count($out[0]); $i++)
{
echo "<b>".$out[3][$i].".".$out[2][$i].".".$out[1][$i]."</b><br>";
echo "Давление ".$out[8][$i]." ... ".$out[9][$i]."<br>";
echo "Температура ".$out[10][$i]." ... ".$out[11][$i]."<br>";
echo "Ветер ".$out[12][$i]." ... ".$out[13][$i]." (направление ".$out[14][$i].")<br><br>";
}
?>
|
Скажите пожалуйста, что за колдовство происходит в строчке
$pattern = "|<FORECAST day=\"([\d]+)\" month=\"([\d]+)\" year=\"([\d]+)\" hour=\"([\d]+)\" tod=\"([\d]+)\" predict=\"([\d]+)\" weekday=\"([\d]+)\".*<PRESSURE max=\"([\d]+)\" min=\"([\d]+)\".*<TEMPERATURE max=\"([^\"]+)\" min=\"([^\"]+)\".*<WIND min=\"([^\"]+)\" max=\"([^\"]+)\" direction=\"([^\"]+)\"|isU";
|
Где тут логика, и как подчинить этого монтра под собственные нужды? | |
|
|
|
|
|
|
|
для: Zilog
(17.01.2007 в 00:50)
| | для того чтобы понять как это всё работает (а я тоже долго врубался),советую прочесть что нибудь этакое http://www.nncron.ru/help/RU/add_info/regexp.htm | |
|
|
|
|
|
|
|
для: LuxeMate
(17.01.2007 в 00:55)
| | Спасибо, друг! Уже читаю.... стало понятней :)
кто бы ещё по человечески обьяснил что и в какие массивы заносится... тут смотрел
http://www.softtime.ru/dic/id_dic=136&id_group=3
но мало что понял.... | |
|
|
|
|
|
|
|
для: Zilog
(17.01.2007 в 01:02)
| | а вы попробуйте зделать так
print_r($arr);
где $arr это переменная в которую заносится массив,и увидите что то вроде этого
array
(
[0] => что то
[1] => что то ещё
[2] => что то другое
)
|
только поэксперементировав с примерами вы поймёте что к чему)) | |
|
|
|
|
|
|
|
для: LuxeMate
(17.01.2007 в 00:55)
| | Что-то пока не очень получается... :((((
ребят, может поможете кодом? смысл в том, что хочу вытянуть погоду вот так:
сейчас
+3 .. +5
завтра
малооблачно, без осадков
днем +1 .. +3
ночью 0 .. +2
|
непонимаю как из всей этой кучи вытащить нужное...... | |
|
|
|
|
|
|
|
для: Zilog
(17.01.2007 в 00:50)
| | Попробуйте Ваш цикл заменить на такой:
for($i = 0; $i < count($out[0]); $i++)
{
if (($out[4][$i] <= date("G") && $out[4][$i]+6 > date("G")) || ($out[4][$i] >= date("G") && $out[4][$i]-6 < date("G")))
{
echo "Сейчас: <br>";
echo "Температура ".$out[10][$i]." ... ".$out[11][$i]."<br><br>";
}
if ($out[1][$i]-1 == date("j"))
{
echo "Завтра: <br>";
echo "Давление ".$out[8][$i]." ... ".$out[9][$i]."<br>";
echo "Температура ".$out[10][$i]." ... ".$out[11][$i]."<br>";
echo "Ветер ".$out[12][$i]." ... ".$out[13][$i]." (направление ".$out[14][$i].")<br><br>";
}
}
|
Будет что-то более менее похожее на то, что нужно ... само рег. выражение работает... | |
|
|
|
|
|
|
|
для: kasmanaft
(17.01.2007 в 05:43)
| | Я подобным способом грузил себе на сайт цены LME ох как я долго мучился... | |
|
|
|
|
|
|
|
для: kasmanaft
(17.01.2007 в 05:43)
| | неработает.... а сам я пока ещё не разобрался....
па-ма-ги-те!!!! | |
|
|
|
|
 1.1 Кб |
|
|
для: Zilog
(17.01.2007 в 22:29)
| | Почему не работает? что-нибудь выводит?
Может быть у вас на сервере установлена "неправильная" временная зона ... какая версия php используется?
В пятой можно временную зону изменить с помощью функции date_default_timezone_set
Название вашей тайм.зоны можно посмотреть тут
- - -
Прикрепил скрипт, который у меня выводит
Сейчас:
Температура 5 ... 3
Завтра:
Давление 714 ... 712
Температура 6 ... 4
Ветер 7 ... 12 (направление 4)
|
Далее вам нужно создать массив, скажем ветров, где под индексами будет записано на человеческам языке, куда же он все-таки дует ... | |
|
|
|