Как проверить, есть ли на сайте Google Analytics или нет CURL? - PullRequest
0 голосов
/ 13 июня 2011

Мне нужно проверить, указан ли сайт с использованием Google Analytics или нет в PHP

Ответы [ 3 ]

2 голосов
/ 13 июня 2011

Вы, вероятно, не можете сделать это надежно, потому что это может быть реализовано в любом сценарии, который использует сайт.

Однако большинство людей следуют примеру кода, который предоставляет Analytics.Если это достаточно близко, просто получите содержимое HTML с помощью cURL и проанализируйте его для этого блока кода JavaScript.

1 голос
/ 13 июня 2011

Что-то вроде:

curl DOMAINNAME | grep -c google-analytics.com

Если это возвращает что-либо кроме 0, у него есть ссылка на JavaScript. Работает на любом, я только что быстро проверил! Это предполагает, что код отслеживания не размещен локально и находится на главной странице, как рекомендует Google.

0 голосов
/ 30 декабря 2014

Создайте один файл PHP и назовите его Ga_track.php. Введите следующий код.

<code><?php

class Ga_track
{
    function get_ga_implemented($url)
    {
    $options = array(
        CURLOPT_RETURNTRANSFER => TRUE, // return web page
        CURLOPT_HEADER => TRUE, // don't return headers
        CURLOPT_ENCODING => "", // handle all encodings
        CURLOPT_USERAGENT => "Mozilla/5.0 (Windows NT 6.1; WOW64)", // who am i
        CURLOPT_SSL_VERIFYHOST => FALSE, //ssl verify host
        CURLOPT_SSL_VERIFYPEER => FALSE, //ssl verify peer
        CURLOPT_NOBODY => FALSE,
    );

    $ch = curl_init($url);
    curl_setopt_array($ch, $options);

        //2> Grab content of the url using CURL
    $content = curl_exec($ch); 

        $flag1_trackpage = false; //FLag for the phrase '_trackPageview'
    $flag2_ga_js = false; //FLag for the phrase 'ga.js'

    // Script Regex
    $script_regex = "/<script\b[^>]*>([\s\S]*?)<\/script>/i"; 

    // UA_ID Regex
    $ua_regex = "/UA-[0-9]{5,}-[0-9]{1,}/";

    // Preg Match for Script
    //3> Extract all the script tags of the content
        preg_match_all($script_regex, $content, $inside_script); 

    //4> Check for ga.gs and _trackPageview in all <script> tag
        for ($i = 0; $i < count($inside_script[0]); $i++)
    {
        if (stristr($inside_script[0][$i], "ga.js"))
            $flag2_ga_js = TRUE;
        if (stristr($inside_script[0][$i], "_trackPageview"))
            $flag1_trackpage = TRUE;
    }

    // Preg Match for UA ID
    //5> Extract UA-ID using regular expression
        preg_match_all($ua_regex, $content, $ua_id);

        //6> Check whether all 3 word phrases are present or not.
        if ($flag2_ga_js && $flag1_trackpage && count($ua_id > 0))
        return($ua_id);
    else
        return(NULL);
    }
}

$ga_obj = new Ga_track();

//1> Set a url for which we have to extract Google Analytic’s UA-ID
$url = "http://www.liftsuggest.com"; 

//===========Block 2===========//
/*You can also make array here from database as below,
set_time_limit(0);
$urls=array();
$con = mysql_connect("localhost","username","password");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("database", $con);

$result = mysql_query("SELECT url_field FROM table");

while($row = mysql_fetch_array($result))
  {
  $urls[]=$row['url_field'];
  }
mysql_close($con);

foreach ($urls as $url)
{
    Copy block 1 here.
}
*/
//===========Block 2 over===========//

//===========Block 1===========//
$ua_id = $ga_obj->get_ga_implemented($url); //Call to a function to extract details
if ($ua_id == NULL)
{
    echo "<br/>Google Analytics is not implemented";
}
else
{
    echo "<pre>";
    print_r($ua_id);
    echo "
"; echo "
Google Analytics реализована."; } // =========== Блок 1 закончен =========== // ?>

Если у вас есть несколько страниц, вы можете сохранить их в базе данных или в массиве и использовать ранее упомянутые шаги в цикличном режиме, извлекая каждую страницу из базы данных. (Блок 2). Проверьте код PHP, чтобы проверить наличие Google Analytics на веб-странице и извлеките UA-ID для получения подробной информации

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...