Форум -> Обо всём... -> Модуль погоды от GisMeteo |
Модуль погоды от GisMeteo |
---|
Bender | Дата: 10.03.2009, в 10:51 | Сообщение №1 |
ПользовательПользователь №: 74 Сообщений: 33
| Серж, у тебя на сайте есть модуль погоды который находится по ссылке http://www.ponedelnikov.net/index.php?name=Pogoda, вот он в последнее время отказывается работать. Что с ним произошло?
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Отредактированно Bender 10.03.2009 г. в 10:52:12 |
|
|
Serg_pnz | Дата: 10.03.2009, в 11:47 | Сообщение №2 |
АдминистраторПользователь №: 1 Сообщений: 2243
| Халява кончилась с внедрением аякса у них на сайте. | Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот |
|
|
suntrade | Дата: 10.03.2009, в 16:57 | Сообщение №3 |
УчастникПользователь №: 348 Сообщений: 67
| Serg_pnz, холява еще не кончилась, но скоро закончится , а пока замените в index.php модуля, gismeteo.ru на gismeteo.ua
Прикрепленные файлы:
Скачать: 1.4 KB |
|
|
Serg_pnz | Дата: 10.03.2009, в 17:58 | Сообщение №4 |
АдминистраторПользователь №: 1 Сообщений: 2243
| suntrade, а нифига))) Я думал. что у них там пипец, а там всего лишь трындец
Меняем парсер, дописываем стили и вперед. При чем сейчас даже можно практически любой из дней сграбить. Например сделать на сегодня-завтра, на сегодня-завтра-послезавтра и даже на 4 дня! (эдакий нестандартный).
ЗЫ: пост набирался в спешке, полевые работы по граблению не проводились, но анализ кода показал, что сие реализуемо. Дерзайте. | Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот |
|
|
suntrade | Дата: 10.03.2009, в 18:02 | Сообщение №5 |
УчастникПользователь №: 348 Сообщений: 67
| Serg_pnz, Спасибо, но без твоей помощи ни как |
|
|
Serg_pnz | Дата: 10.03.2009, в 20:29 | Сообщение №6 |
АдминистраторПользователь №: 1 Сообщений: 2243
| Значицца так.
1. Они сменили систему кодов городов (поищем)
2. А пока настраиваем парсер
Замените
Код | 1
| $out = readservis("http://www.gismeteo.ru/towns/".$kod.".htm");
preg_match('/var frc=\'(.*)\'; var prhdr=/sUi',$out,$tabl);
echo preg_replace("#<tr><td colspan=8>(.*?)Печать</a></b></span></td></tr>#si","",$tabl[1]); |
на
Код | 1
| $kod = 4445;
$out = readservis("http://www.gismeteo.ru/city/daily/".$kod."/");
$out = iconv("UTF-8", "CP1251", $out);
preg_match_all('#<table summary=\"Карты погоды\">(.*?)</table>#si',$out,$tabl);
echo $tabl[0][1]; |
Итог - погода на ближайшие 3 дня и хвостик от четвертого.
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Отредактированно Serg_pnz 11.03.2009 г. в 11:32:30 | Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот |
|
|
suntrade | Дата: 11.03.2009, в 09:41 | Сообщение №7 |
УчастникПользователь №: 348 Сообщений: 67
| Serg_pnz, спасибо огромное, что ты помогаешь нам |
|
|
SE7EN | Дата: 13.03.2009, в 16:24 | Сообщение №8 |
ПользовательПользователь №: 396 Сообщений: 37
| А есть возможность как-то оформить таблицу с результатами самостоятельно? |
|
|
Serg_pnz | Дата: 13.03.2009, в 16:33 | Сообщение №9 |
АдминистраторПользователь №: 1 Сообщений: 2243
| SE7EN, конечно!
В принципе на все ячейки уже назначены стили, тебе их только надо описать в своём css (гемор с направлением ветра будет, но это уже детали)
Вариант 2 - продолжить парсить таблицу и расставить всё на те места, на какие тебе надо и с твоими стилями. | Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот |
|
|
SE7EN | Дата: 13.03.2009, в 17:14 | Сообщение №10 |
ПользовательПользователь №: 396 Сообщений: 37
| Serg_pnz, я был бы тебе очень благодарен за более подробный ответ, хотя бы с одним примером.
Просто у меня модуль погоды, так в нём из админки можно задать цвета и колонок и границ таблицы, и размер значков (можно выбрать брать с гисметео или свои показывать).
Но после замен кода стили не цепляются и значки не меняются
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Отредактированно SE7EN 13.03.2009 г. в 17:55:12 |
|
|
SE7EN | Дата: 14.03.2009, в 19:04 | Сообщение №11 |
ПользовательПользователь №: 396 Сообщений: 37
| О опять погодка пропала, плохо. |
|
|
ILICH | Дата: 19.03.2009, в 15:14 | Сообщение №12 |
УчастникПользователь №: 512 Сообщений: 60
| Кто нибудь подправит погоду?
Тут был файл, который удален автором сообщения или администрацией сайта.
Прикрепленные файлы: |
|
|
Serg_pnz | Дата: 19.03.2009, в 15:17 | Сообщение №13 |
АдминистраторПользователь №: 1 Сообщений: 2243
| ILICH, а что? Нормально показывает, надо только id собрать... Но с другой стороны не тырить же все id от всего мира...
Или для тырения id написать еще одну грабилку... | Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот |
|
|
ILICH | Дата: 19.03.2009, в 15:37 | Сообщение №14 |
УчастникПользователь №: 512 Сообщений: 60
| |
|
SE7EN | Дата: 19.03.2009, в 19:42 | Сообщение №15 |
ПользовательПользователь №: 396 Сообщений: 37
| Ну во мне помогли очень (врать не буду) но с датами засада полная.
Завтра посижу поковыряю, надо чтоб иконки погоды брались с моего же сайта а не от гисметео.
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Отредактированно SE7EN 19.03.2009 г. в 19:54:36
Прикрепленные файлы: |
|
|
Serg_pnz | Дата: 19.03.2009, в 20:18 | Сообщение №16 |
АдминистраторПользователь №: 1 Сообщений: 2243
| SE7EN, да там нехрен делать, просто поменять пути. Немного не успел доделать... Думаю за завтра закончу. | Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот |
|
|
SE7EN | Дата: 20.03.2009, в 05:12 | Сообщение №17 |
ПользовательПользователь №: 396 Сообщений: 37
| Вот за это Serg_pnz, я тебя и уважаю - ты знаеш что да как. Про иконки это не проблема, там в коде всё есть, просто смотрим откуда иконки ну и соответственно в замене прописываем пути к своим. Но есть некоторые вещи которые для меня не так просты вот и парюсь. |
|
|
Serg_pnz | Дата: 20.03.2009, в 10:32 | Сообщение №18 |
АдминистраторПользователь №: 1 Сообщений: 2243
| Итак мы сделали замену кода (см. Сообщение №6)
Теперь приводим таблицу в нормальный вид, для чего строку
меняем на Код | 1
| preg_match_all('#<tr(.*?)>(.*?)</tr>#si',$tabl[0][1],$tr);
$month=array("01" => "января", "02" => "февраля", "03" => "марта", "04" => "апреля", "05" => "мая", "06" => "июня", "07" => "июля", "08" => "августа", "09" => "сентября", 10 => "октября", 11 => "ноября", 12 => "декабря");
unset($tr[2][21]);unset($tr[2][22]);unset($tr[2][23]);unset($tr[2][24]);unset($tr[2][25]);unset($tr[2][26]);unset($tr[2][27]);
preg_match('#UTC\: (.*?) #', $tr[2][2], $tmp);
$tmp = explode('-', $tmp[1]);
$tr[2][0] = preg_replace ("#\.#", (intval($tmp[2]).' '.$month[$tmp[1]].' '.$tmp[0]), $tr[2][0]);
preg_match('#UTC\: (.*?) #', $tr[2][9], $tmp);
$tmp = explode('-', $tmp[1]);
$tr[2][7] = preg_replace ("#\.#", (intval($tmp[2]).' '.$month[$tmp[1]].' '.$tmp[0]), $tr[2][7]);
preg_match('#UTC\: (.*?) #', $tr[2][16], $tmp);
$tmp = explode('-', $tmp[1]);
$tr[2][14] = preg_replace ("#\.#", (intval($tmp[2]).' '.$month[$tmp[1]].' '.$tmp[0]), $tr[2][14]);
foreach($tr[2] as $key => $val) {
$tr[2][$key] = preg_replace ("#img src=\"/images/ico/wind#", "img src=\"http://i.gismeteo.com/images/ico/wind", $tr[2][$key]);
$tr[2][$key] = preg_replace ("#<!--(.*?)-->#", "", $tr[2][$key]);
}
echo "<table><tr>".(implode($tr[2], "</tr><tr>"))."</tr></table>";
/*
* Разработчикам: Используйте, что бы посмотреть массив
*/
/*
foreach($tr[2] as $key => $val) {
echo $key.'<br>'.htmlspecialchars($tr[2][$key]).'<br><br><br><br>';
}
*/ |
| Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот |
|
|
ILICH | Дата: 23.03.2009, в 12:20 | Сообщение №19 |
УчастникПользователь №: 512 Сообщений: 60
| Serg_pnz, Огромное спасибо! А как сделать иконки со своего компа? |
|
|
Serg_pnz | Дата: 23.03.2009, в 15:00 | Сообщение №20 |
АдминистраторПользователь №: 1 Сообщений: 2243
| ILICH, не уверен, что мы знаем всю номенклатуру иконок, используемых Гисметео.
В общем виде менять надо тут
Код | 1
| foreach($tr[2] as $key => $val) {
$tr[2][$key] = preg_replace ("#img src=\"/images/ico/wind#", "img src=\"http://i.gismeteo.com/images/ico/wind", $tr[2][$key]);
//тут надо поставить еще один реплейз
//$tr[2][$key] = preg_replace ([что], [на что], $tr[2][$key]);
$tr[2][$key] = preg_replace ("#<!--(.*?)-->#", "", $tr[2][$key]);
} |
| Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот |
|
|
|
Вы не можете ответить в тему анонимно, пожалуйста, войдите или зарегистрируйтесь!
|