22.11.2016 06:50
aldemko
 
Доброго времени
Вот все по сайту по немногу разбираюсь
Сейчас дошел до простого парсера валют, который меня всем устраивает
Сам парсер простой и разные его модификации есть в интернете, со стоит из 2 частей

get_rate.php:
Код:
<?php 

function get_rate($currency) {

$date = getdate();  // получаем ассоциативный массив с данными по дате

$day_of_the_week = $date['wday']; // день недели

    //расчет коэффициента смещения
    switch ($day_of_the_week) {
    case 0:  $k1 = 2 ;  $k2 = 1;  break;   // воскресенье
    case 1:  $k1 = 3 ;  $k2 = 2;  break;   // понедельник
    case 2:  $k1 = 3 ;  $k2 = 0;  break;  // вторник
    default: $k1 = 1 ;  $k2 = 0;  break;   // среда, четверг, пятница, суббота
    }

$month = $date['mon'] ;    // месяц
$day = $date['mday'] ;     // число сегодня
$yesterday = $day - $k1 ;  // число для получения курса на предыдущий день
$today = $day - $k2 ;      // число для получения курса на сегодня
$year = $date['year'] ;    // год


$date_yesterday = date("d/m/Y", mktime(0, 0, 0, $month, $yesterday, $year )); // Генерация даты для курса предыдущего дня
$date_today = date("d/m/Y", mktime(0, 0, 0, $month, $today, $year )); // Генерация даты для курса на сегодня

$rate = array() ;

foreach($currency as $key => $value) {
$url = 'http://www.cbr.ru/scripts/XML_dynamic.asp?date_req1='.$date_yesterday.'&date_req2='.$date_today.'&VAL_NM_RQ='.$value ;
$xml = simplexml_load_file($url);
$rate_today = round(str_replace(',','.',$xml->Record[1]->Value), 2);
$rate_yesterday = round(str_replace(',','.',$xml->Record[0]->Value), 2);
$range = round($rate_today - $rate_yesterday, 2) ;

if ($range > 0) {
$range = '+' . $range;
$img = 'up' ;
} elseif ($range == 0) {
$range = 0 ;
$img = 0 ;
} else {
$img = 'down' ;
}

$rate[$key] = array(
 'today' => $rate_today,
 'change' => $range,
 'img' => $img
);

}

return $rate ;

}



и файла который отвечает за вывод
index.php:
Код:
<?php  

require_once 'get_rate.php' ;

$currency = array(
'dollar' => 'R01235',
'euro' => 'R01239'
);

$rate = get_rate($currency);

foreach ($rate as $key => $value) { ?>

<img src="<?php echo $key; ?>.png" alt="" />

<strong><?php echo $value['today']; ?></strong>

<?php if($value['change']) { ?>

<img src="<?php echo $value['img']; ?>.png" alt="" /> <?php echo $value['change']; ?>

?>


на простой пустой странице
Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 21 сообщение(ий)):
У вас нет прав чтобы видеть скрытый текст, содержащийся здесь.

отображается все корректно и красиво, с переносом строк,
но этот же код вставлен в меню (пробовал и в другие места)
Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 21 сообщение(ий)):
У вас нет прав чтобы видеть скрытый текст, содержащийся здесь.

и вывод производится одним столбом
В чем может быть проблема ?
Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 21 сообщение(ий)):
У вас нет прав чтобы видеть скрытый текст, содержащийся здесь.
22.11.2016 06:55
OlegON
 
Ты бы код страницы хоть немного сравнил. В закрытой у тебя <ul>

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.