@nospiou ссылка не открывается --- Добавлено --- Может просто статическое число вставить и не заморачиваться?) Это как?
То чувство когда встретил человека не знающего о торрентах)) --- Добавлено --- Статическое = не изменяющееся. Какое вставили такое и будет. Зато заморачиваться не нужно. А по ссылке видеоуроки по программированию. 2-3 вечерка и такие вещи можно будет делать самому.
@nospiou в ютубе есть эти уроки, у меня та страница не открывается --- Добавлено --- Видел в примерах, делали вывод в json данные. А вот всё по полочкам нету --- Добавлено --- Вот тут он все данные взял. Вот как вывести не понимаю Ещё пример И ещё Может кто тут есть кто поможет? --- Добавлено --- Вот тут ещё, ссылка
Урааа почти всё есть, Скажите это json ссылка ? Сама статья ссылка Помогите данные вывести в блок div ?
Так не работает HTML: <div class="lives"></div> <script> $.getJSON("http://counter.yadro.ru/values?site=devaka.ru", function(data) { $('.lives').html(data.LI_today_hit); }); </script>
В php PHP: <?PHP $i = parse_ini_string(file_get_contents('http://counter.yadro.ru/values?site=devaka.ru')); echo $i['LI_month_vis']; ?> но нужно вывести в json подскажите как? --- Добавлено --- сидел тыкал написал так PHP: <?PHP $i = parse_ini_string(file_get_contents('http://counter.yadro.ru/values?site=devaka.ru')); echo json_encode($i); ?> выводит так HTML: {"LI_site":"devaka.ru","LI_month_hit":"109891","LI_month_vis":"49790","LI_week_hit":"26620","LI_week_vis":"14228","LI_day_hit":"5205","LI_day_vis":"3393","LI_today_hit":"331","LI_today_vis":"230","LI_online_hit":"12","LI_online_vis":"7"} Всё верно как в html вывести? --- Добавлено --- сидел тыкал написал так PHP: <?PHP $i = parse_ini_string(file_get_contents('http://counter.yadro.ru/values?site=devaka.ru')); echo json_encode($i); ?> выводит так HTML: {"LI_site":"devaka.ru","LI_month_hit":"109891","LI_month_vis":"49790","LI_week_hit":"26620","LI_week_vis":"14228","LI_day_hit":"5205","LI_day_vis":"3393","LI_today_hit":"331","LI_today_vis":"230","LI_online_hit":"12","LI_online_vis":"7"} --- Добавлено --- сделал в конре Файл *.json PHP: <?PHP $i = parse_ini_string(file_get_contents('http://counter.yadro.ru/values?site=devaka.ru')); file_put_contents('st.json',json_encode($i)); ?> в файл *.json записывается так HTML: {"LI_site":"devaka.ru","LI_month_hit":"109891","LI_month_vis":"49790","LI_week_hit":"26620","LI_week_vis":"14228","LI_day_hit":"5207","LI_day_vis":"3393","LI_today_hit":"335","LI_today_vis":"232","LI_online_hit":"11","LI_online_vis":"6"} пишу js не работает HTML: <script> $.getJSON(".../st.json", function(data) { $('.lives').html(data.LI_site); }); </script> --- Добавлено --- сделал в корне Файл *.json PHP: <?PHP $i = parse_ini_string(file_get_contents('http://counter.yadro.ru/values?site=devaka.ru')); file_put_contents('st.json',json_encode($i)); ?> в файл *.json записывается так HTML: {"LI_site":"devaka.ru","LI_month_hit":"109891","LI_month_vis":"49790","LI_week_hit":"26620","LI_week_vis":"14228","LI_day_hit":"5207","LI_day_vis":"3393","LI_today_hit":"335","LI_today_vis":"232","LI_online_hit":"11","LI_online_vis":"6"} пишу js не работает
Код (Javascript): $.ajax({ type: 'POST', url: '/file.json', dataType: 'json', // success: function (data) { console.log(data) .('#div').text(data.li...) }, error: function() { console.log('error') } });
@nospiou Failed to load ...s08.test-hf.su/st.json: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'сайт.ru' is therefore not allowed access. --- Добавлено --- эта ошибка была с этим скриптом HTML: <div class="lives"></div> <script> $.getJSON("s08.test-hf.su/st.json", function(data) { $('.lives').html(LI_site); }); </script> --- Добавлено --- В консоли так:
Ну ошибка все подсказала. Нельзя через js подключаться к чужому хосту. Если чужой хост этого не разрешает а по умолчанию не разрешает.
@nospiou это мой хост s08.test-hf.su тестовый, что там может быть? --- Добавлено --- В этом хосте есть такой код index.php Код (Text): <?php header('Access-Control-Allow-Origin: мой сайт'); header('Vary: Origin'); header('Access-Control-Allow-Methods: GET'); header('Content-type: application/json; charset=utf-8'); exit(file_get_contents('current/current.json')); ?>
header('Access-Control-Allow-Origin: мой сайт'); это ты сделал только для своего php файла а пытаешься забрать json header('Access-Control-Allow-Origin: мой сайт'); echo(file_get_contents('file.json')); и к нему обращаешься в js
Я немного не шарю мне так на другом форуме подсказали когда делал другой скрипт, подскажи что не так? я не понимаю. Что нужно куда вставить?
PHP: <?php header('Access-Control-Allow-Origin: мой сайт'); header('Vary: Origin'); header('Access-Control-Allow-Methods: GET'); header('Content-type: application/json; charset=utf-8'); echo(file_get_contents('current/current.json')); // путь к json ?> эта страничка отдаст json и в js указываешь ссылку не на json а на файл с этим кодом
Я вчера нашёл статью пример Код (Text): LI_site = 'mexboy.ru'; LI_month_hit = 5313; LI_month_vis = 3886; LI_week_hit = 1096; LI_week_vis = 885; LI_day_hit = 172; LI_day_vis = 144; LI_today_hit = 89; LI_today_vis = 74; LI_online_hit = 4; LI_online_vis = 4; Может есть другой более простой способ вывода данных хитов?
что за бред. Обращайся если что, научу "через js подключаться к чужому хосту.", даже если "не разрешает". )) Или почитай хоть ченибудь про cross-origin и не мели чушь.
Вытаскиваем данные из API Яндекс Метрики простеньким скриптом, набросал когда-то для себя. И не пользуемся никакими библиотеками от ЯндексМетрики, в данном случае (именно в данном случае) это излишне громоздкое и неуклюжее решение, которое используют только лишь безрукие "специалисты", имя коим легион. HTML: <html> <head> <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> <script type="text/javascript"> google.charts.load('current', {'packages':['corechart']}); google.charts.setOnLoadCallback(drawChart); function drawChart() { var data = google.visualization.arrayToDataTable([ ['Country', 'Visits'], <? $obj = json_decode(file_get_contents('https://api-metrika.yandex.ru/stat/v1/data?id=***********&dimensions=ym:s:regionCountry&metrics=ym%3As%3Avisits&oauth_token=******************************'), true); for( $i = 0; $i < 12; $i++){ echo '[', "'", $obj['data'][$i]['dimensions'][0]['name'], "'", ', ', $obj['data'][$i]['metrics']['0'], '],'; } ?> ]); var options = { title: 'Visits to Masterpro.ws' }; var chart = new google.visualization.PieChart(document.getElementById('piechart')); chart.draw(data, options); } </script> </head> <body> <div id="piechart" style="width: 900px; height: 500px;"></div> </body> </html> Или вытаскиваем из Метрики рефералов сайта; для разнообразия визуализируем уже через Highchart. Нкжно ведь чтобы был выбор, да и аналогия не помешает. )) HTML: <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Masterpro.ws. External referer</title> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script> <script type="text/javascript"> $(function () { $('#container').highcharts({ chart: { type: 'pie', options3d: { enabled: true, alpha: 45, beta: 0 } }, title: { text: 'Masterpro.ws. External referer' }, tooltip: { pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>' }, plotOptions: { pie: { allowPointSelect: true, cursor: 'pointer', depth: 35, dataLabels: { enabled: true, format: '{point.name}' } } }, series: [{ type: 'pie', name: 'Доля внешних переходов', data: [ <? $obj = json_decode(file_get_contents('https://api-metrika.yandex.ru/stat/v1/data?id=**********&dimensions=ym:s:externalRefererPathLevel1&metrics=ym:s:visits&oauth_token=*****************************'), true); for( $i = 0; $i < count($obj['data']); $i++){ echo '[', "'", $obj['data'][$i]['dimensions'][0]['name'], "'", ', ', $obj['data'][$i]['metrics']['0'], '],'; } ?> ] }] }); }); </script> </head> <body> <script src="https://code.highcharts.com/highcharts.js"></script> <script src="https://code.highcharts.com/highcharts-3d.js"></script> <script src="https://code.highcharts.com/modules/exporting.js"></script> <div id="container" style="height: 500px"></div> </body> </html> Демка примера 1, демка примера 2. Обрати внимание, код один в один тот самый, что отрабатывает в примерах, никаких "секретных участков кода" у меня нет. Не забудь только вставить ID и токен, в скриптах обозначены звездочками. А то бывали прецеденты, кулибиных море. )) --- Добавлено --- что отключить, зачем отключить? )) Простенький пример, остальное к докам, чай, не ребенок. А то я уже полчаса стучу здесь по клаве, ну и достаточно... For example; сайт ЦБР "не разрешает", говоря твоим языком, или же не отдает правильные корсы, как принято в среде кодеров говорить. Ну а мы все равно вытащим джиэсом из его API курсы валют, какие проблемы-то. Главное - захотеть.... гляди, ты где-то здесь пых наблюдаешь? - вот тебе и ответ. Копипастни в файл, открой в браузере и получи удовольствие. Код (Javascript): <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.js"></script> <script> $(document).ready( function(){ $.getJSON("https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20xml%20where%20url%3D'http%3A%2F%2Fwww.cbr.ru%2Fscripts%2FXML_daily.asp%3F'&format=json&callback=") .done( function(data){ var output = '<ul>'; $(data.query.results.ValCurs.Valute).each(function(i, item){ output += '<li>' + item.Name + ' - ' + item.Value + '</li>'; } ); output += '</ul>'; $('#test').append($(output)); } ) } ); </script> <div id="test" />
Подскажите, если не трудно? Я не понимаю. Что нужно? Как вывести хиты? Можно и просто js или обязательно php нужно?
Алексей, про js это я не вам, просто форум сливает несколько сообщений в одно. Можно и js, но это я просто показал принцип; пример полностью работоспособен, но сделан именно под курсы валют ЦБР. По аналогии несложно работать и с ЯндексМетрикой, посредством только js, но нафига лишний раз кодить? вот же я спецом для вас два готовых примера показал, php + chart, копипастните код, подставьте свои ID и токен вместо звездочек, и все сразу из коробки у вас заработает. Бесплатно.
Есть такой пример, но у меня конфлик двух скриптов. Сервер php: два файла st.php и .htaccess st.php PHP: <?php if($f = file_get_contents('http://counter.yadro.ru/values?site=devaka.ru)) { exit(parse_ini_string($f)['LI_today_hit']); //это хиты за месяц, } ?> .htaccess Код (Text): Header add Access-Control-Allow-Origin "Мой сайт.ру" Header add Vary "Origin" Header add Access-Control-Allow-Headers "origin, x-requested-with, content-type" Header add Access-Control-Allow-Methods "GET, POST" js HTML: <div class="lives"></div> <script> $(".lives").load("хостингs08.test-hf.su/st.php"); </script> Всё работает, но перестаёт работать второй скрипт курс валют, если удалить .htaccess то курс валют работает, а статистика нет. В чём может быть проблема?
Ну попробуйте воспользовть ся тем скриптом парсинга курса валют, что я показал в третьем примере, он будет работать даже на вашем ПК, php ему не нужен. Или спарсите курс валют вот таким образом, будет работать без всяких редактур, из коробки (я любитель Google chart): PHP: <html> <head> <? $curDate = date('d/m/Y', mktime(0,0,0,date("n"),date("j")+1,date("Y"))); $curDate2 = date('d/m/Y', mktime(0,0,0,date("n"),date("j")-7,date("Y"))); $currencyXML = simplexml_load_file('http://www.cbr.ru/scripts/XML_dynamic.asp?date_req1='.$curDate2.'&date_req2='.$curDate.'&VAL_NM_RQ=R01235'); $currencyXML1 = simplexml_load_file('http://www.cbr.ru/scripts/XML_dynamic.asp?date_req1='.$curDate2.'&date_req2='.$curDate.'&VAL_NM_RQ=R01239'); ?> <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> <script type="text/javascript"> google.charts.load('current', {'packages':['corechart']}); google.charts.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) . ' ],'; } ?> ]); var options = { title: 'Exchange rates', hAxis: {title: '', titleTextStyle: {color: '#333'}}, vAxis: {minValue: 75} }; var chart = new google.visualization.AreaChart(document.getElementById('chart_div')); chart.draw(data, options); } </script> </head> <body> <div id="chart_div" style="width: auto; height: 200px;"></div> </body> </html>