djelektronik
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору короче маза с текстовыми информерами погоды закончилась раньше у мя там пхп скрипт с помощью регулярных выражений вытаскивал нужные строки ща приделали флеш из флеша я выдрал строку http://img.gismeteo.ru/flashinf/FLA10381.TXT те цифры есть идентификатор города получаем в файле такую строку date=28&month=2&day=6&wparam1=68054&wparam2=2120628.73&s1=43&s2=43&wt=2& выдираем из флеша скрипт Код: // Action script... // [Action in Frame 1] setProperty("/w1", _visible, 0); setProperty("/w2", _visible, 0); setProperty("/w3", _visible, 0); setProperty("/w4", _visible, 0); setProperty("/w5", _visible, 0); setProperty("/w6", _visible, 0); setProperty("/w7", _visible, 0); setProperty("/w8", _visible, 0); setProperty("/w9", _visible, 0); wt = -1; if (lang == "") { lang = "ru"; } // end if getURL("http://img.gismeteo.ru/flashinf/FLA10381.TXT" + "?" + random(9999), "_level" + 0); setProperty("/MCblank", _y, 100); // [Action in Frame 3] if (wt > -1) { gotoAndPlay(4); } else { gotoAndPlay(2); } // end if // [Action in Frame 4] t2 = (wparam1 - 17000 * int(wparam1 / 17000)) / 9; t1 = int(wparam1 / 17000); if (lang != "ru") { if (eval("town" + lang) != "") { town = eval("town" + lang); } else if (townen != "") { town = townen; } // end if } // end if if (adv120 == 1) { loadMovie("http://img.gismeteo.ru/flash/rinc/adv120.swf", "/MCblank"); } // end if counter = 0; hum = int((wparam2 - int(wparam2)) * 100 + 1.8); wparam2 = int(wparam2); pres = int(wparam2 / 10000) + 550; wparam2 = wparam2 - int(wparam2 / 10000) * 10000; ws = int(wparam2 / 100) - 5; wparam2 = wparam2 - int(wparam2 / 100) * 100; wdindx = wparam2 / 7 - 3; // [Action in Frame 5] dayru2 = "ПН"; dayru3 = "ВТ"; dayru4 = "СР"; dayru5 = "ЧТ"; dayru6 = "ПТ"; dayru7 = "СБ"; dayru1 = "ВС"; nowindru = "штиль "; wsru = "м/с "; wdru7 = "С-З "; wdru6 = "Зап "; wdru5 = "Ю-З "; wdru4 = "Южн "; wdru3 = "Ю-В "; wdru2 = "Вос "; wdru1 = "С-В "; wdru0 = "Сев "; dayit2 = "Lun"; dayit3 = "Mar"; dayit4 = "Mer"; dayit5 = "Gio"; dayit6 = "Ven"; dayit7 = "Sab"; dayit1 = "Dom"; nowindit = "vento calmo"; wsit = "m/s"; wdit7 = "N-O"; wdit6 = "O"; wdit5 = "S-O"; wdit4 = "S"; wdit3 = "S-E"; wdit2 = "E"; wdit1 = "N-E"; wdit0 = "N"; dayen2 = "Mon"; dayen3 = "Tue"; dayen4 = "Wed"; dayen5 = "Thu"; dayen6 = "Fri"; dayen7 = "Sat"; dayen1 = "Sun"; nowinden = "no wind"; wsen = "m/s"; wden7 = "N-W"; wden6 = "W"; wden5 = "S-W"; wden4 = "S"; wden3 = "S-E"; wden2 = "E"; wden1 = "N-E"; wden0 = "N"; presen = "mm Hg"; humen = "humidity"; wnden = "wind"; preswrden = "pressure"; // [Action in Frame 7] if (length(town) > 9) { city_short = " "; tcounter = 1; tstring = ""; while (length(town) >= tcounter) { tstring = tstring + substring(town, tcounter, 1); if (substring(town, tcounter, 1) == ".") { tstring = tstring + " "; } // end if tcounter = tcounter + 1; } // end while town = tstring; city_long = town; } else { city_short = town; city_long = " "; } // end if tempr = chr(s1) + t1 + ".." + chr(s2) + t2 + "°C "; if (lang == "en") { daydate = eval("day" + lang + day) + chr(13) + month + "/" + date; } else { daydate = eval("day" + lang + day) + chr(13) + date + "/" + month; } // end if setProperty("/w1", _visible, 0); setProperty("/w2", _visible, 0); setProperty("/w3", _visible, 0); setProperty("/w4", _visible, 0); setProperty("/w5", _visible, 0); setProperty("/w6", _visible, 0); setProperty("/w7", _visible, 0); setProperty("/w8", _visible, 0); setProperty("/w9", _visible, 0); setProperty("/w" + wt, _visible, 1); if (lang == "ru") { infostr = "давление " + pres + " мм рт.ст."; infostr = infostr + " "; infostr = infostr + "влажность " + hum + "%"; infostr = infostr + " ветер "; } else { infostr = eval("preswrd" + lang) + " " + pres + " " + (eval("pres" + lang)); infostr = infostr + " "; infostr = infostr + (eval("hum" + lang)) + " " + hum + "%"; infostr = infostr + " " + (eval("wnd" + lang)) + " "; } // end if if (ws == 0) { if (lang == "ru") { infostr = infostr + "штиль "; } else { infostr = infostr + (eval("nowind" + lang)); } // end if } else { infostr = infostr + (eval("wd" + lang + wdindx)) + " " + ws + (eval("ws" + lang)); } // end if infostr = " " + infostr; text = " "; indx = 1; setProperty("/MCblank", _alpha, 0); // [Action in Frame 8] if (substring(text, 1, 2) == " ") { if (substring(infostr, indx, 2) == " ") { text = substring(text, 3, 16) + substring(infostr, indx, 2); indx = indx + 1; } else { text = substring(text, 3, 16) + substring(infostr, indx, 1); } // end if } else if (substring(infostr, indx, 2) == " ") { text = substring(text, 2, 16) + substring(infostr, indx, 2); indx = indx + 1; } else { text = substring(text, 2, 16) + substring(infostr, indx, 1); } // end if if (indx < length(infostr)) { indx = indx + 1; } else { indx = 1; if (adv120) { counter = counter + 1; } // end if } // end if // [Action in Frame 10] if (counter < 3) { gotoAndPlay(8); } // end if // [Action in Frame 11] setProperty("/MCblank", _alpha, 0); tellTarget("/MCblank") { stop(); } // End of TellTarget // [Action in Frame 15] setProperty("/MCblank", _y, 1); setProperty("/MCblank", _alpha, 100); tellTarget("/MCblank") { stop(); gotoAndPlay(1); } // End of TellTarget counter = counter - 1; // [Action in Frame 114] if (counter == 1) { counter = counter - 1; } else { gotoAndPlay(15); } // end if // [Action in Frame 115] setProperty("/MCblank", _alpha, 0); tellTarget("/MCblank") { stop(); } // End of TellTarget // [Action in Frame 120] setProperty("/MCblank", _y, 100); gotoAndPlay(7); | пишем парсер строки на основе кода из флеша Код: <? $in = implode('',file('http://img.gismeteo.ru/flashinf/FLA10381.TXT')); $paars = split('&', $in); foreach( $paars as $paar) { list($parametr, $value) = split('=', $paar); $var[$parametr] = $value; } $t2 = ($var['wparam1'] - 17000 * intval($var['wparam1'] / 17000)) / 9; $t1 = intval($var['wparam1'] / 17000); $hum = intval(($var['wparam2'] - intval($var['wparam2'])) * 100 + 1.8); //влажность $wparam2 = intval($var['wparam2']); $pres = intval($wparam2 / 10000) + 550; //давление $wparam2 = $wparam2 - intval(wparam2 / 10000) * 10000; $ws = intval($wparam2 / 100) - 5; // скорость ветра $wparam2 = $wparam2 - intval($wparam2 / 100) * 100; $wdindx = $wparam2 / 7 - 3; echo "температура ".$t1." - ".$t2; echo "<br>влажность ".$hum; echo "<br>давление ".$press; echo "<br>ветер ".$ws; ?> | результат работы температура 4 - 6 влажность 74 давление ветер 21201 правильно тока влажность и температура оригинальные скорость ветра 1м/с северо-восточный давление 762 как там пощитать остальное теперь? ЗЫ было бы неплохо если бы была опция загрузки файлов для темы как ша на хоботе сделали |