Не, ну как "свой". Вряд ли в этой области возможно что-то "свое" и эксклюзивное, все ведь несложно, базируется на классических, всем известных примерах... но все же. Вот чарт от Google заодно впервые опробовал и осмотрел, классная штука, рекомендую.
18.03.2024 с сайта удалены все демки, демонстрировавшие чарты курсов валют Центробанка РФ. API CBR, с которым много лет не было никаких хлопот, практически перестал работать: то ли это бан за американский ip блога, то ли что-то еще (излишне говорить, все данные кэшировались), подробно разбираться нет ни смысла, ни желания. Гуд лаг май френдс.
Не, ну как "давно". Не так уж, в общем, и давно... аккурат несколько месяцев назад это у меня началось, когда впервые понадобилось расплатиться за что-то там эдакое abroad и в валюте своим MasterCard, который в последнее время принимает у меня исключительно рублевые платежи. Вот тогда, помню, немало регулярных выражений на языке завертелось... добрым, конечно, и самым что ни на есть тихим словом, но вот прям-таки нестерпимо захотелось в тот момент вспомнить имена ряда руководящих товарищей, предков их там по материнской линии, по отцовской, ну да и по партейной линии тоже. А чего им, на самом-то деле? За хостинг платить не надо, за домены - не надо, небось на шкафу свой сервак у них в спальне жужжит, и вообще все у них по жизни великолепно. Не понять им проблем простых людей - айтишников и программистов, все у них на блюдечке. Круто ведь - свой дата-центр на шкафу, согласитесь. Мечта.
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load("visualization", "1", {packages:["corechart"]});
google.setOnLoadCallback(drawChart);
function drawChart() {
var data = google.visualization.arrayToDataTable([
['Date', 'USD', 'EUR'],
<?
for($i = 0; $i < sizeof($currencyXML->Record); $i++){
echo "['{$currencyXML->Record[$i]['Date']}', " . str_replace(',', '.', $currencyXML->Record[$i]->Value) . ' , ' . str_replace(',', '.', $currencyXML1->Record[$i]->Value) . ' ],';
}
?>
]);
Внимание; если вместо курса валют вы видите следующее сообщение - Data column(s) for axis #0 cannot be of type string× - зайдите чуть попозже... данные не кэшируются, и ошибка говорит только о том, что сайт ЦБ РФ не отдает в этот момент XML.
Да, кстати, о регулярках... в скрипте (полностью приведен на форуме, здесь - только фрагмент) они не использованы. Непонятно, нафига вообще регулярные выражения фигурируют в официальных примерах с сайта ЦБ РФ в контексте парсинга XML; если это у них такой пример вопиющего профессионализма, и айтишники данного учреждения не отстают в этом плане от своих коллег-банкиров... а заодно и от коллег-политиков разного уровня... то всем этим вкупе вполне объясним тот ужас, что показывает здесь этот гугловский чарт. Я даже vAxis: {minValue: 60} установил, как видите, потому что в обозримом будущем вряд ли курс доллара опустится ниже этой отметки. И дай-то господи, чтобы я ошибся.