Advertisement
Guest User

Untitled

a guest
Jan 17th, 2017
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.00 KB | None | 0 0
  1. <?php
  2.  
  3. ######--------------------------------------------(--------Валюты--------)----------------------------------------######
  4.  
  5. //ЛИСТ ЗАПРАШИВАЕМОЙ ВАЛЮТЫ
  6. $list = array(10,11,16,28);
  7. /*
  8. [1] Австралийский доллар
  9. [2] Азербайджанский манат
  10. [3] 100 Армянских драмов
  11. [4] Белорусский рубль
  12. [5] Болгарский лев
  13. [6] Бразильский реал
  14. [7] 100 Венгерских форинтов
  15. [8] 1000 Вон Республики Корея
  16. [9] 10 Датских крон
  17. [10] Доллар США
  18. [11] Евро
  19. [12] 100 Индийских рупий
  20. [13] 100 Казахстанских тенге
  21. [14] Канадский доллар
  22. [15] 100 Киргизских сомов
  23. [16] 10 Китайских юаней
  24. [17] 10 Молдавских леев
  25. [18] Новый туркменский манат
  26. [19] 10 Норвежских крон
  27. [20] Польский злотый
  28. [21] Румынский лей
  29. [22] СДР (специальные права заимствования)
  30. [23] Сингапурский доллар
  31. [24] 10 Таджикских сомони
  32. [25] Турецкая лира
  33. [26] 1000 [3] => Узбекских сумов
  34. [27] 10 [3] => Украинских гривен
  35. [28] Фунт стерлингов Соединенного королевства
  36. [29] 10 Чешских крон
  37. [30] 10 Шведских крон
  38. [31] Швейцарский франк
  39. [32] 10 Южноафриканских рэндов
  40. [33] 100 Японских иен
  41. */
  42.  
  43. ######--------------------------------------------(---------Даты---------)----------------------------------------######
  44.  
  45. //Текущая дата
  46. $date = date('d.m.Y');
  47. //Вчерашний день
  48. $time = strtotime("-1 day");
  49. $y_date = date("d.m.Y", $time);
  50.  
  51. ######--------------------------------------------(-----Текущий день-----)----------------------------------------######
  52.  
  53.  
  54. // URL страницы с курсами валют в зависимости от даты
  55. $url="http://www.cbr.ru/currency_base/D_print.aspx?date_req=$date";
  56.  
  57. // Читаем содержимое HTML страницы
  58. $html = file_get_contents($url);
  59.  
  60. // кодировка
  61. $charset = 'UTF-8';
  62.  
  63. // на данном этапе, находим на в коде блок с классом header2, и все что до него удаляем, т.к. оно нам ненужно, там содержится ненужная нам информация
  64. $pos=mb_strpos($html,'<table class="CBRTBL">', 0, $charset); // позиция
  65.  
  66. $html=mb_substr($html,$pos,mb_strlen($html, $charset), $charset); // обрезаем до указанной позиции, удаляя все лишнее
  67.  
  68. $dom = new domDocument; // создаем объект дерева DOM
  69. $dom->loadHTML($html); // загружаем в него спарсенную страницу
  70.  
  71. $dom->preserveWhiteSpace = false;
  72. $tables = $dom->getElementsByTagName('table'); // получаем из дерева DOM первую таблицу, ею является как раз таблица содержащая курсы валют
  73.  
  74. $rows = $tables->item(0)->getElementsByTagName('tr'); // получаем из таблицы все строки
  75.  
  76. $i=0;
  77. $curs = array(); // массив который будет хранить данные
  78.  
  79.  
  80.  
  81. foreach ($rows as $row) // перебор полученных строк
  82. {
  83. if($i==0) {$i++; continue;} // первую строку пропускаем, т.к. она содержит заголовки столбцов а не данные
  84. $cols = $row->getElementsByTagName('td'); // разбираем все строки по столбцам
  85.  
  86.  
  87. // записываем в полученные данные в массив, для удобного представления и работы дальше
  88. $curs[$i][0]=$cols->item(0)->nodeValue; // Цифр. код
  89. $curs[$i][1]=$cols->item(1)->nodeValue; // Букв. код
  90. $curs[$i][2]=$cols->item(2)->nodeValue; // Единиц
  91. $curs[$i][3]=$cols->item(3)->nodeValue; // Валюта
  92. $curs[$i][4]=$cols->item(4)->nodeValue; // Курс
  93. $i++;
  94. }
  95.  
  96. ######--------------------------------------------(--Вывод результатов--)----------------------------------------######
  97.  
  98. //вывод всей валюты
  99. for($j = 1; $j < count($curs)+1; $j++){//1 и +1 потому что первая строка не имеет значений
  100.  
  101. $today_amount = $curs[$j][2];//количество
  102. $today_name = $curs[$j][3];//название
  103. $today_value = $curs[$j][4];//значение
  104. $today = array($j => $today_amount." ".$today_name." - ".$today_value."<br>");//получил массив today с ключом
  105.  
  106. if(in_array($j,$list)){ //если в массиве $list есть значение $j, то выводим $today с этим ключом
  107. echo $today[$j] ;
  108.  
  109. }
  110. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement