Как присвоить свою PHP переменную USD/RUB из JavaScript информера Forex?
Информер называется:
"Информер - Курс рубля на межбанковском рынке" http://www.forexpf.ru/_informer_/ кусок его кода такой: <td id="usdrubbid">0.00</td>- этот курс вставляется в ячейку таблицы информера. Мне нужно запихнуть эту переменную в свою переменную php типо $my ссылка на код JavaScript на их серваке: <script type="text/javascript" charset="utf-8" src="http://informers.forexpf.ru/export/euusrub.js"></script> Просто моя задача такая, что нужно вычесть текущий курс USD/RUB Форекса из курса ЦБ РФ. А курс ЦБ РФ находится у меня в PHP переменной $usd Или если знаете где можно получить курс USD/RUB Форекса с другого источника по api или xml, напишите плиз )) |
А вам что нужно информер или курс валют?
|
Цитата:
|
Что первично так и не понятно. Если отобразить на клиенте - помещать в страницу курсы ЦБ как js-переменные. Курсы из информера обычно, на jQ как $('#usdrubbid').text() и $('#eurrubbid').text(), или без него document.getEleventById('usdrubbid').
Если отправлять то с клиента при загрузке страницы курсы информера отдавать серверу. |
Цитата:
Я так понимаю когда информер загружается у меня на сайте, то из их JS: http://informers.forexpf.ru/export/euusrub.js там есть строчка document.getElementById("usdrubbid").innerHTML=61. 532; и значение 61.532 вставляется в информер сюда вместо 0.00: <td id="usdrubbid">0.00</td> а мне нужно, чтобы оно вставилось в мою переменную php $my Затем я просто в своем коде на сайте возьму и вычту из $my курс ЦБ РФ, который находится в переменной $usd и всё. Курс ЦБ РФ в переменной $usd у меня уже есть. Пробовал вставлять этот код "$('#usdrubbid').text()" на сайт и вылезает ошибка: Parse error: syntax error, unexpected '(', expecting T_VARIABLE or '$' Кароч я не знаю как заюзать этот код правильно |
Цитата:
Если вся эта затея только ради того чтобы на сервере что-то со значениями курсов форекс сделать, ну так получайте их сразу сервером: preg_match_all('#\d{2,}\.\d{3,}#', file_get_contents('http://informers.forexpf.ru/export/euusrub.js'), $forex); $usd = $forex[0][0]; $eur = $forex[0][2]; |
Цитата:
|
Цитата:
Бывает только $eur не выводится. И когда не выводится $eur, то значение $usd имеет этот курс евро, который должен был присвоиться переменной $eur. Этот баг вылезает именно когда иногда, например раз 1 минуту обновляешь страницу с кодом. А если подряд ее обновлять то можно раз 30 обновить и бага этого не будет ) При этом сами курсы в информере официальном всегда нормальные значения показывают. А еще немного не по теме, но такой вот баг ща заметил. Просто код вычитания одной переменной из другой: CBR USD = 60.6569 USD Forex = 60.566 USD Forex-CBR = -0.090899999999998 Почему не -0,0909 ? вот мой полный код: <!-- FOREXPF.RU - Forex start --> <table width="210" border="1" style="border-collapse: collapse; text-align:center; font-size:11px; color:#000000; "><tr bgcolor=""><td height="10" valign="top" colspan="3"><style>A.forexpf_ { text-decoration: none;} A.forexpf_:visited {color: #000000;} </style><a href="http://www.forexpf.ru/" title="Курсы валют" target="_blank" class="forexpf_">Курсы валют</a></td></tr><tr bgcolor="F6EDDD"><td></td><td>Покупка</td><td>Продажа</td></tr><tr bgcolor=""><td><a href="http://www.forexpf.ru/chart/usdrub/" title="Курс доллара" target="_blank" class="forexpf_">USD/RUB</a></td><td id="usdrubbid">0.00</td><td id="usdrubask">0.00</td></tr><tr bgcolor="F6EDDD"><td><a href="http://www.forexpf.ru/chart/eurrub/" title="Курс Евро" target="_blank" class="forexpf_">EUR/RUB</a></td><td id="eurrubbid">0.00</td><td id="eurrubask">0.00</td></tr><tr bgcolor=""><td colspan="3" id="euusrutm">Данные на</td></tr></table><script type="text/javascript" charset="utf-8" src="http://informers.forexpf.ru/export/euusrub.js"></script> <!-- FOREXPF.RU - Forex end --> <? $eur_value=str_replace(",",".",$eur_value); $usd_value=str_replace(",",".",$usd_value); echo "<br>CBR USD = $usd_value"; echo "<br>CBR EUR = $eur_value"; preg_match_all('#\d{2,}\.\d{3,}#', file_get_contents('http://informers.forexpf.ru/export/euusrub.js'), $forex); $usd = $forex[0][0]; $eur = $forex[0][2]; echo "<br>USD Forex = $usd"; echo "<br>EUR Forex = $eur"; $usd_minus=$usd-$usd_value; echo "<br><br>USD Forex-CBR = $usd_minus"; $eur_minus=$eur-$eur_value; echo "<br>EUR Forex-CBR = $eur_minus"; ?> |
$sbr_usd = 60.6569; $sbr_eur = 62.9576; if($forex = file_get_contents('http://informers.forexpf.ru/export/euusrub.js')) { if(preg_match_all('#\d{1,}\.\d{1,}#', $forex, $forex)) { $usd = $forex[0][0]; $eur = $forex[0][2]; echo 'Forex USD = ' . $usd . ', difference = ' . round($usd - $sbr_usd, 3) . '<br>' . 'Forex EUR = ' . $eur . ', difference = ' . round($eur - $sbr_eur, 3); } else echo 'Empty'; } else echo 'No connect'; Потому, что курс не обязательно nn.три_знака, а -0.090899999999998 это не баг, а точность которая обеспечивается разрядностью языка и платформы. |
спс за код )
Цитата:
Я вот такой код выполняю для теста: <? $usd1 = 60.6569; $usd2 = 60.566; $usd_minus=$usd2-$usd1; echo "$usd_minus"; ?> И мне выводит результат -0.090899999999998 Хотя правильное число должно быть -0,0909 Если например на калькуляторе посчитать |
Цитата:
|
Часовой пояс GMT +3, время: 18:23. |