Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.90/63: Рейтинг темы: голосов - 63, средняя оценка - 4.90
0 / 0 / 1
Регистрация: 10.03.2010
Сообщений: 37

Считать курс доллара автоматически

01.07.2012, 12:44. Показов 12867. Ответов 34
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Я нашел скрипт, который получает курс доллара с сайта ЦБ.
А мне нужно теперь, чтоб этот курс (переменная) использовалась в сотне других файлах для получения цены ежедневно на основе курса доллара.

Как я могу достать переменную с курсом доллара и подставить ее во все жти файлы?

есть файл dollar.php (в нем как раз скрипт с получением курса доллара $dollar)
есть файл tovar1.php вот как в нем получить мне $dollar из dollar.php?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.07.2012, 12:44
Ответы с готовыми решениями:

Курс доллара на php +2%
Доброго вечера всем! Имеется скрипт на php, выводящий в битриксе курс доллара. Собственно, скрипт (стырен с просторов рунета): ...

Умножить полученный курс доллара на значение переменной
Добрый день уважаемые форумчани! Подскажите пожалуйста есть данный код...

Корректировка цен с использованием PHP на сайте WordPress под курс доллара
Доброго времени суток уважаемые форумчане. Есть следующие данные: Сайт на WP. На сайте есть страниц 50-60 с товарами. На каждой странице...

34
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
01.07.2012, 12:55
LLIo6oH, значит так, подключите файл "dollar.php" к файлу "tovar1.php" вот так:
PHP
1
require_once("dollar.php");
И после того, как подключите, напишите
PHP
1
echo $dollar;
И смотрите результат
2
0 / 0 / 1
Регистрация: 10.03.2010
Сообщений: 37
01.07.2012, 12:56  [ТС]
спасибо.
0
 Аватар для Sergio Aguero
452 / 443 / 21
Регистрация: 11.04.2012
Сообщений: 2,076
01.07.2012, 12:58
LLIo6oH, плиз скинь скриптец сам подсчета доллара - просто самому тоже надо
Буду благодарен)
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
01.07.2012, 14:21
Sergio Aguero, вот такой скрипт (только что написал ). Данные он получает с помощью CURL:
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
<?php
    // URL страницы сайта ЦБ РФ, где находится курс доллара
    $url = "http://cbr.ru";
    
    // Инициализируем сеанс CURL
    if( $ch = curl_init( $url ) )
    {
        // Устанавливаем дополнительные опции для сеанса CURL
        curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
        
        // Выполняем запрос к сайту ЦБ РФ
        $content = curl_exec( $ch );
        
        // Регулярка для поиска курса доллара
        $pattern = "/\<td(.*)align\=\"right\"(.*)nowrap\>(.*)\&nbsp\;\<img/ui";
        
        // Ищем курс и заносим в массив
        preg_match( $pattern, $content, $matches );
        
        echo "Текущий курс доллара: <strong>".$matches[3]."</strong>";
    }
    else
    {
        echo "<strong>ОШИБКА:</strong> Не удалось инициализировать сеанс CURL, возможно эта библиотека у вас не установлена";
    }
?>
4
0 / 0 / 1
Регистрация: 10.03.2010
Сообщений: 37
04.07.2012, 17:51  [ТС]
НУ и у меня примерно так же. я в интернете в яндексе нашел.

У меня такой вопрос. у меня в одном html сайте используется много инклюдов php файлов где необходимо использовать курс доллара. А именно курс умножается на стандартную долларовую цену.

но после того как первый инклюд использует это в своем php файле, то для другого php файла доллар уже приходит измененный. и соответственно значение курса доллара все растет и растет и растет.

Как бы мне его статичный что ли сделать?
или может надо использовать не include_once?
0
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,844
04.07.2012, 18:06
Цитата Сообщение от LLIo6oH Посмотреть сообщение
или может надо использовать не include_once?
интересно как построен ваш скрипт что он при многократном вызове ростет , можно его код
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
04.07.2012, 18:26
Цитата Сообщение от LLIo6oH Посмотреть сообщение
А именно курс умножается на стандартную долларовую цену.
Зачем он умножается? Ну хотя да, лучше, как сказал выше crautcher - покажите код.
0
0 / 0 / 1
Регистрация: 10.03.2010
Сообщений: 37
04.07.2012, 21:38  [ТС]
Вот файл скрипта где считается курс доллара

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
<?php 
  // Получаем текущие курсы валют в rss-формате с сайта www.cbr.ru 
  $content = get_content(); 
  // Разбираем содержимое, при помощи регулярных выражений 
  $pattern = "#<Valute ID=\"([^\"]+)[^>]+>[^>]+>([^<]+)[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>([^<]+)[^>]+>[^>]+>([^<]+)#i"; 
  preg_match_all($pattern, $content, $out, PREG_SET_ORDER); 
  $dollar = ""; 
  $euro = ""; 
  foreach($out as $cur) 
  { 
    if($cur[2] == 840) $dollar = str_replace(",",".",$cur[4]); 
    if($cur[2] == 978) $euro   = str_replace(",",".",$cur[4]); 
  } 
  $dollar = $dollar + 0.5;
  //echo "Доллар - ".$dollar."<br>"; 
 // echo "Евро - ".$euro."<br>"; 
  function get_content() 
  { 
    // Формируем сегодняшнюю дату 
    $date = date("d/m/Y"); 
    // Формируем ссылку 
    $link = "http://www.cbr.ru/scripts/XML_daily.asp?date_req=$date"; 
    // Загружаем HTML-страницу 
    $fd = fopen($link, "r"); 
    $text=""; 
    if (!$fd) echo "Запрашиваемая страница не найдена"; 
    else 
    { 
      // Чтение содержимого файла в переменную $text 
      while (!feof ($fd)) $text .= fgets($fd, 4096); 
    } 
    // Закрыть открытый файловый дескриптор 
    fclose ($fd); 
    return $text; 
  } 
?>
вот кусок html где написаны инклюды

HTML5
1
2
3
4
5
6
<li class = "parts">***********
                 <ul>
                     <? include("M3g1.php");  ?>
                     <? include("M3g2.php");  ?>
                 </ul>
             </li>
В каждом этом php следующий код

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
<div class = "description">
                                 <div class = "partName">*****</div>
                                 <div class = "partdescription">***</div>
                                 <div class = "partfit">***</div>
                                 <div class = "partstatus">***</div>
                                 <div class = "partprice"><b>Цена:</b> 
                                 <?php include_once("changeRate.php");
                                 $dollar = round($dollar * 145, 0);
                                 $ostatok = $dollar%10;
                                 $dollar = $dollar-$ostatok;
                                 echo $dollar. " р";?></div>
                                 </div>
                             </div>
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
05.07.2012, 07:45
LLIo6oH, я так понял, вы получаете курс доллара и переводите в рубли? И потом ещё умножаете на цену товара? Объясните работу вот этого поподробнее:
PHP
1
2
3
4
5
<?php include_once("changeRate.php");
                                 $dollar = round($dollar * 145, 0);
                                 $ostatok = $dollar%10;
                                 $dollar = $dollar-$ostatok;
                                 echo $dollar. " р";?>
0
239 / 236 / 43
Регистрация: 16.03.2011
Сообщений: 750
05.07.2012, 11:23
Курс $ на сегодня.
PHP
1
2
$xml = simplexml_load_file('http://www.cbr.ru/scripts/XML_daily.asp?date_req='.date('d/m/Y'));
echo $xml->Valute[9]->Value;
1
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
05.07.2012, 12:13
А я не знал, что на сайте ЦБ РФ есть выдача данных в формате XML. Но раз есть данные, представленные в XML, то вариант r36 лучше, чем писать парсер главной страницы сайта.
0
0 / 0 / 1
Регистрация: 10.03.2010
Сообщений: 37
05.07.2012, 23:42  [ТС]
Цитата Сообщение от Lyodik Посмотреть сообщение
LLIo6oH, я так понял, вы получаете курс доллара и переводите в рубли? И потом ещё умножаете на цену товара? Объясните работу вот этого поподробнее:
PHP
1
2
3
4
5
<?php include_once("changeRate.php");
                                 $dollar = round($dollar * 145, 0);
                                 $ostatok = $dollar%10;
                                 $dollar = $dollar-$ostatok;
                                 echo $dollar. " р";?>

Здесь у меня берется доллар из changeRate.php его курс в рублях.
умножается на долларовую стоимость - 145, получаем цену в рублях. все остальное для округления.

Но все это приводит к тому, что следующий такой же инклюд уже использует курс не в 33 рубля (к примеру), а измененный после всех вычислений выше..
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
06.07.2012, 08:32
Цитата Сообщение от LLIo6oH Посмотреть сообщение
Здесь у меня берется доллар из changeRate.php его курс в рублях.
умножается на долларовую стоимость - 145, получаем цену в рублях.
Что-то я никак не догоню... Курс доллара у вас в скрипте "10 рублей" что-ли?

Добавлено через 2 минуты
Хотя зачем бы вы делили, а не умножали... В общем, где у вас в скрипте высчитывается курс в рублях?
0
0 / 0 / 1
Регистрация: 10.03.2010
Сообщений: 37
06.07.2012, 09:36  [ТС]
курс доллара он берется с сайта вот здесь

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
<?php 
  // Получаем текущие курсы валют в rss-формате с сайта [url]www.cbr.ru[/url] 
  $content = get_content(); 
  // Разбираем содержимое, при помощи регулярных выражений 
  $pattern = "#<Valute ID=\"([^\"]+)[^>]+>[^>]+>([^<]+)[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>([^<]+)[^>]+>[^>]+>([^<]+)#i"; 
  preg_match_all($pattern, $content, $out, PREG_SET_ORDER); 
  $dollar = ""; 
  $euro = ""; 
  foreach($out as $cur) 
  { 
    if($cur[2] == 840) $dollar = str_replace(",",".",$cur[4]); 
    if($cur[2] == 978) $euro   = str_replace(",",".",$cur[4]); 
  } 
  $dollar = $dollar + 0.5;
  //echo "Доллар - ".$dollar."<br>"; 
 // echo "Евро - ".$euro."<br>"; 
  function get_content() 
  { 
    // Формируем сегодняшнюю дату 
    $date = date("d/m/Y"); 
    // Формируем ссылку 
    $link = "http://www.cbr.ru/scripts/XML_daily.asp?date_req=$date"; 
    // Загружаем HTML-страницу 
    $fd = fopen($link, "r"); 
    $text=""; 
    if (!$fd) echo "Запрашиваемая страница не найдена"; 
    else 
    { 
      // Чтение содержимого файла в переменную $text 
      while (!feof ($fd)) $text .= fgets($fd, 4096); 
    } 
    // Закрыть открытый файловый дескриптор 
    fclose ($fd); 
    return $text; 
  } 
?>

а тут

PHP
1
$dollar = round($dollar * 145, 0);
уже используется переменная доллар, в которой храниться курс (33 рубля, например) и умножается на 145 долларов. И получаем цену в рублях в соответствии с курсом
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
06.07.2012, 10:04
LLIo6oH, извините, я тупнул . У меня в голове почему-то сложилось такое впечатление, что мы с сайта ЦБ получаем курс в долларах, а не рублях . В общем, сделайте так:
- Поместите в файл "changeRate.php" такую функцию:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
// Функция для выдачи цены
function GetPrice( $price )
{
    global $dollar;
    
    $dollar = round($dollar * $price, 0);
    $ostatok = $dollar % 10;
    $dollar = $dollar - $ostatok;
    
    // Выводим
    echo $dollar." р";
}
- А в файлах ""M3g1.php"", ""M3g2.php"", ... замените это:
PHP
1
2
3
4
5
<?php include_once("changeRate.php");
$dollar = round($dollar * 145, 0);
$ostatok = $dollar%10;
$dollar = $dollar-$ostatok;
echo $dollar. " р";?>
На это:
PHP
1
2
3
4
5
6
7
<?php
// Подключаем файл с курсом доллара
include_once("changeRate.php");
 
// Вызываем функцию выдачи цены
GetPrice( тут_указываем_цену_в_долларах );
?>
1
217 / 157 / 30
Регистрация: 11.05.2010
Сообщений: 614
06.07.2012, 10:13
что такое 145?
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
06.07.2012, 17:11
Цитата Сообщение от kester Посмотреть сообщение
что такое 145?
kester, цена в долларах
0
0 / 0 / 1
Регистрация: 10.03.2010
Сообщений: 37
09.07.2012, 20:38  [ТС]
что-то не срабатывает.

тоже самое...

цена в M3g1.php считается правильно а цена в M3g2.php считается уже по увеличенному доллару и получается заоблачной

Добавлено через 22 минуты
маленько подправил и все заработало. спасибо
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
09.07.2012, 20:40
LLIo6oH, не буду вас водить вокруг да около:
- Просто замените имена переменных. Вот так например:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
// Функция для выдачи цены
        function GetPrice( $price )
        {
            global $dollar;
            
            $rub = round($dollar * $price, 0);
            $ostatok = $rub % 10;
            $rub = $rub - $ostatok;
            
            // Выводим
            echo $rub." p";
        }
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.07.2012, 20:40
Помогаю со студенческими работами здесь

Есть ли в PHP стандартная функция, возвращающая курс доллара на данный момент?
а то проблемы с ssl не позволяют открыть url. https://www.cyberforum.ru/php-beginners/thread1341963.html

Курс доллара
Составить программу «Курс доллара», позволяющую выполнять построение столбчатой диаграммы, графика или круговой диаграммы по месяцам, в...

Курс Доллара Тинькофф
Здравствуйте, как получить курс доллара c сайта https://www.tinkoff.ru/about/exchange/ В пункте &quot;Перевести с карты на карту на...

Программа «Курс доллара»
Добрый день. Нужно реализовать такую задачу: &quot;Возле надписи «сегодня» должна появиться текущая дата, а в рамке «Курс доллару »в...

Курс доллара с яндекса
получаю курс доллара (под словом &quot;сегодня&quot;) с яндекса $tmp_arr=array(); $result=file_get_contents(&quot;http://yandex.ru&quot;); ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru