Мне нужно проверить, что сайт использует Google Analytics или нет в PHP
Вероятно, вы не можете сделать это надежно, потому что его можно было бы ожидать в любом скрипте, который использует сайт.
Однако большинство людей следуют примеру кода, который предоставляет Google Analytics. Если это достаточно близко, просто получите содержимое HTML с помощью cURL и проанализируйте его для этого блока кода JavaScript.
Что-то вроде:
curl DOMAINNAME | grep -c google-analytics.com
Если это возвращает ничего, кроме 0, у него есть ссылка на javascript. Работает на любом, что я только что проверил! Это предполагает, что код отслеживания не размещается локально и находится на главной странице, как рекомендует Google.
Создайте один файл PHP и назовите его Ga_track.php
. Напишите следующий код.
<?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 "</pre>"; echo "<br/>Google Analytics is implemented."; } //===========Block 1 over===========// ?>
Если у вас несколько страниц, вы можете сохранить их в базе данных или в массиве и использовать ранее упомянутые шаги в цикле, извлекая каждую страницу из базы данных. (Блок 2) /. Проверьте код PHP, чтобы проверить наличие Google Analytics на веб-странице и извлечь UA-ID для получения более подробной информации.