Форум программистов, компьютерный форум, киберфорум
brain-4-me
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  

Парсинг погоды № 2

Запись от brain-4-me размещена 26.03.2015 в 12:08
Показов 2243 Комментарии 0

вот немного доделал и переделал парсинг, сделан автокомплит и запрос с wiki по численности населения в городе, только не работает для всех городов, т.к. на яндексе и wiki они пишуться по разному...
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
<!doctype html>
<?php
error_reporting(0);
    $data_file = 'https://pogoda.yandex.ru/static/cities.xml';
    $xml = simplexml_load_file($data_file);
    $elements = $xml->xpath("//city");
    $s=implode("\",\"",$elements);
 ?>
<html>
<head>
<style>
 
</style>
  <meta charset="utf-8">
  <link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
  <script src="//code.jquery.com/jquery-1.10.2.js"></script>
  <script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
  <script>
  $(function() {
    var availableTags = [
      "<?php echo $s ?>"
    ];
    $( "#tags" ).autocomplete({
      source: availableTags
    });
  });
  </script>
</head>
<body>
<form method="POST">
   <label for="tags">Выберете город: </label>
  <input id="tags" name="city" autocomplete="off">
  <input type="submit" name="submit">
</form>
<?php 
    //запрос погоды
    if (isset($_POST['submit'])){
       $search = $_POST['city'];
      $data_file = 'https://pogoda.yandex.ru/static/cities.xml';
 $xml = simplexml_load_file($data_file);
        $city = $xml->xpath("//city[text()='${search}']/@id");
        $country = $xml->xpath("//city[text()='${search}']/@country");
    ?>
  
  <?php $city_id=$city['0']->id;
        $country=$country['0']->country;
    if ($city_id == TRUE){
   
    $weather_file= 'http://export.yandex.ru/weather-ng/forecasts/'.$city_id.'.xml';
    $xml_weath=simplexml_load_file($weather_file);
      $now=$xml_weath->fact->temperature;
      $from=$xml_weath->day->day_part->temperature_from;
      $to=$xml_weath->day->day_part->temperature_to;
    }else{
      die("<center><h2>Вы ввели неправильное название города, или с маленькой буквы! Например Екатеринбург</h2></center>");
    }
    //Извлечение количества населения
    
    
    if ($_POST['submit']){
        $city=$_POST['city'];
        $url="https://ru.wikipedia.org/wiki/$city";
        $url=file_get_contents($url);
        preg_match('/<span style="white-space: nowrap;">(.*?)<\\/div>/is', $url,$city);
        $people=$city[0];       
    }
    
?>
  <div style="margin:0 auto; width: 60%;">
  <p>
  <table border=1px style="text-align:center;">
    <tr>
      <th>Ваша Страна</th>
      <th>Ваш Город</th>
      <th>Текущая температура</th>
      <th>Проноз</th>
      <th>Численность населения (на год)</th>
    </tr>
    <tr>
      <td><?php echo $country ?></td>
      <td><?php echo $search ?></td>
      <td><?php echo $now ?></td>
      <td><?php echo "от $from до $to"?></td>
      <td><?php if($people == false){echo "Такого города нет в Википедии или он введен неверно)";}else {echo $people;} ?></td>
    </tr>
  </table>
</div>
<?php } ?>
 
 
</body>
</html>
Размещено в Без категории
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 0
Комментарии
 
Новые блоги и статьи
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru