Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы по PHP » Кто сможет помочь в оптимизации простеньких скриптов?

Кто сможет помочь в оптимизации простеньких скриптов?


     25.03.2015    Все вопросы » Общие вопросы по PHP    2199

вопрос
Приветствую, накопал в гугле некоторую информацию о том как вывести данные из счётчика яндекс метрики на сайт, кое что получилось, но с единственным минусом

при подключении этого скрипта в шаблон сайт очень долго грузится, этот скрипт его замедляет,время загрузки страницы увеличилось до 1,8 сек, в то время как при отключении этого скрипта загрузка 0,6 сек.

Что я делал:
Есть два php файла
1) APImetrika.php
<?php
class APImetrika{

    private $token         = "ТОКЕН";
    private $url_api     = "http://api-metrika.yandex.ru/";
    private $counter_id = "id счётчика";

    public function get_traffic($date1, $date2){

        return $this->get_data(
            $this->url_api.
            "stat/traffic/summary.json?id=".
            $this->counter_id.
            "&pretty=1".
            "&date1=".$date1.
            "&date2=".$date2.
            "&oauth_token=".
            $this->token
        );
    }

    private function get_data($url){

        if($url){

            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL, $url);
            curl_setopt($ch, CURLOPT_HEADER, 0);
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
            curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
            curl_setopt($ch, CURLOPT_TIMEOUT, 30);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

            $data = json_decode(
                curl_exec($ch), true
            );

            curl_close($ch);

            if(is_array($data)){

                return $data;
            }
        }

        return false;
    }
}
?>


2) metrika_site.php - который и подключаю в main.tpl {include file="/metrika/metrika_site.php"}
<?php
    require_once("APImetrika.php");

    $obj = new APImetrika();

    $today = $obj->get_traffic(
        date("Ymd"),
        date("Ymd")
    );
    $last  = $obj->get_traffic(
        date("Ymd", time() - 86400),
        date("Ymd", time() - 86400)
    );

    #Склонения  declination(7,array('просмотр','просмотра','просмотров'))
    function declination($int, $arr) {

        $type = array (2,0,1,1,1,2);

        return $arr[($int%100>4 && $int%100<20)? 2 : $type[min($int%10, 5)]];

    }

?>
<!DOCTYPE html>
<html>
<head>
    <meta charset="ANSI" />
    <title>APImetrika</title>
</head>
<body><b>
    Вчера:
    <?php echo $last["totals"]["visits"],declination($last["totals"]["visits"],array(' посещение',' посещения',' посещений'));?>,
    <?php echo $last["totals"]["page_views"],declination($last["totals"]["page_views"],array(' просмотр страниц.',' просмотра страниц.',' просмотров страниц.'));?></b><br>
    По независимым данным <a href="https://metrika.yandex.ru/list/" target="_blank" >Яндекс.метрики </a>
</body>

Ответа пока нет


3 комментария

follor
Юзер

follor - 25 марта 2015 23:06 -

Печаль с этой метрикой...

follor
Юзер

follor - 28 марта 2015 16:15 -

Подниму тему, может кто сможет подсказать как его оптимизировать.

follor
Юзер

follor - 28 марта 2015 18:15 -

Сам разобрался)

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх