Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.142.210.100] |
|
Сообщ.
#1
,
|
|
|
Всем привет!
Ребят есть классный погодный информер, который дергает апи вундерграунда.... только он на php, помогите переделать в c#, в phpвообще не понимаю что там. <?php $ip = $_SERVER['REMOTE_ADDR']; $url = 'http://api.sypexgeo.net/xml/'. $ip .''; $xml = simplexml_load_string(file_get_contents($url)); $loc_array = array($xml->ip->city->lat,$xml->ip->city->lon); $loc_safe = array(); foreach($loc_array as $loc){ $loc_safe[] = urlencode($loc); } $loc_string=implode(',', $loc_safe); $json = file_get_contents('http://api.wunderground.com/api/xxxkey/satellite/webcams/forecast/q/' . $loc_string . '.json'); $json = str_replace('Monday', 'Понедельник', $json); $json = str_replace('Tuesday', 'Вторник', $json); $json = str_replace('Wednesday', 'Среда', $json); $json = str_replace('Thursday', 'Четверг', $json); $json = str_replace('Friday', 'Пятница', $json); $json = str_replace('Saturday', 'Суббота', $json); $json = str_replace('Sunday', 'Воскресенье', $json); $obj = json_decode($json, true); ?> <? $html .= "</h2><table cellpadding=4 cellspacing=3><tr>"; foreach ($obj['forecast']['simpleforecast']['forecastday'] as $arr) { $html .= "<td align='center'>" . $arr['date']['weekday'] . "<br />"; $html .= "<img src='http://icons-pe.wxug.com/i/c/k/" . $arr['icon'] . ".gif' border=0 /><br />"; $html .= "<font color='red'>" . $arr['high']['celsius'] . '°C' . " </font>"; $html .= "<font color='blue'>" . $arr['low']['celsius'] . '°C' . "</font>"; $html .= "</td>"; } $html .= "</tr></table>"; echo $html; ?> |
Сообщ.
#2
,
|
|
|
Цитата FreeWayy @ А что именно не получается? помогите переделать в c#, в phpвообще не понимаю что там. |
Сообщ.
#3
,
|
|
|
Цитата simsergey @ Цитата FreeWayy @ А что именно не получается?помогите переделать в c#, в phpвообще не понимаю что там. намек понял, сам такой ;-) Вот этот массив $loc_array = array($xml->ip->city->lat,$xml->ip->city->lon); что это за конструкция -> ? Добавлено Цитата FreeWayy @ Цитата simsergey @ Цитата FreeWayy @ А что именно не получается?помогите переделать в c#, в phpвообще не понимаю что там. намек понял, сам такой ;-) Вот этот массив $loc_array = array($xml->ip->city->lat,$xml->ip->city->lon); что это за конструкция -> ? и этот перебор: foreach ($obj['forecast']['simpleforecast']['forecastday'] as $arr) { в рейзоре это будет в круглых скобках? Не понятно что делается выше и как это повторить на райзоре |
Сообщ.
#4
,
|
|
|
Цитата FreeWayy @ намек понял, сам такой ;-) Это фрагмент твоего XML, который получает скрипт: <sxgeo> <ip num="82.145.221.127" request="-1" error="" created="2016.12.11" timestamp="1481488752"> <city> <id>3413829</id> <lat>64.13548</lat> <lon>-21.89541</lon> <name_ru>Рейкьявик</name_ru> <name_en>Reykjavik</name_en> <name_de>Reykjavík</name_de> <name_fr>Reykjavik</name_fr> <name_it>Reykjavík</name_it> <name_es>Reikiavik</name_es> <name_pt>Reiquiavique</name_pt> <okato/> <vk>0</vk> <population>118918</population> </city> Функции PHP для работы с массивами Функция Array Цитата FreeWayy @ Это автор проходит по ветке в XML файлике.что это за конструкция -> ? Функция Array создает массив из двух значений 64.13548 и -21.89541. Дальше он подставляет значения ширины и долготы и забирает файлик .json. Разбирает его, потом перебирает весь массив, лежащий в ['forecast']['simpleforecast']['forecastday']. Т.е. после разбора получается массив $obj, который содержит весь этот json, но с ключами не цифровыми а буквенными. Массив этот многомерный. Т.е. $obj - массив, в котором есть массив 'forecast', содержащий массив 'simpleforecast', который в свою очередь содержит 'forecastday'. 'forecastday' содержит несколько одинаковых по ключам массивов, эти массивы от начала и до конца перебирает foreach, представляя каждый из них как $arr за одну итерацию, выбирает по ключам в $arr значения, подставляет в html, формирует один элемент, второй элемент и т.д.. пока не переберёт весь 'forecastday'. С шарпом не работал, как это там представить не подскажу. |