Сборщик статистики поисковых запросов
Четверг, 19 ноября 2009 г.
Просмотров: 571
Подписаться на комментарии по RSS
Походив по интернету я не мог найти действительно стоящий скрипт на php для сбора поисковых запросов по которым ко мне приходили на сайт, по набрав там сям собрал как на мой взгяд очень даже не плохой скриптик который собирает всю статистику в отдельный файлик
, который в дальнейшем можно импортировать в сапу для покупки ссылок.
В скрипте реализован сбор поисковых запросов с 8 всем нам известных поисковиков
вот их списочек: google
Yandex
rambler
aport
bing бывший msn
qip
nigma
Список легко расширяем)), но думаю этого вполне достаточно.
У меня скрипт работает без ошибок! и да файл с поисковыми запросами сохраняется в кодировке windows-1251, так как я ее предпочитаю больше чем utf-8, и в формате
<a href="ссылка на которую пришли кнам">поисковый запрос</a>
каждый новый запрос сохраняется с новой строчки.
Собсна сам скрипт: - сохраняет в кодировке win1251
- <?php
- $Domain = strtolower($_SERVER['SERVER_NAME']);
- if (is_int(strpos($_SERVER['SERVER_NAME'], "www.", 0))) {
- $Domain = substr($_SERVER['SERVER_NAME'], 4);
- }
- define('StatFileName', "searchwords.html");
- function GetSearchText() {
- $Result = '';
- if (isset($_SERVER['HTTP_REFERER'])) {
- $Ref= $_SERVER['HTTP_REFERER'];
- if (!(empty($Ref))) {
- $UrlArray = parse_url($Ref);
- if ( $UrlArray['scheme'] == 'http' ) {
- $RefHost = $UrlArray['host'];
- $IsGoogle = strpos($RefHost, 'www.google.');
- if (($RefHost == 'search.msn.com') ||
- ( is_int($IsGoogle) && ($IsGoogle == 0) )) {
- parse_str($UrlArray['query']);
- $Result=utf8_win($q);
- } elseif (($RefHost == 'images.google.')||($RefHost == 'video.google.')||($RefHost == 'news.google.')) {
- parse_str($UrlArray['query']);
- $Result= utf8_win($q);
- } elseif (($RefHost == 'www.bing.com')||($RefHost == 'bing.com')) {
- parse_str($UrlArray['query']);
- $Result= utf8_win($q);
- } elseif (($RefHost == 'www.rambler.ru')||($RefHost == 'nova.rambler.ru')||($RefHost == 'news.rambler.ru')) {
- parse_str($UrlArray['query']);
- $Result= utf8_win($query);
- } elseif ($RefHost == 'top100.rambler.ru') {
- parse_str($UrlArray['query']);
- $Result= $query;
- } elseif (($RefHost == 'go.mail.ru')||($RefHost == 'mail.ru')||($RefHost == 'soft.mail.ru')) {
- parse_str($UrlArray['query']);
- $Result= $q;
- } elseif (($RefHost == 'yandex.ru')||($RefHost == 'www.yandex.ru')||($RefHost == 'www.ya.ru')||($RefHost == 'ya.ru')||($RefHost == 'images.yandex.ru')||($RefHost == 'news.yandex.ru')||($RefHost == 'blogs.yandex.ru')||($RefHost == 'video.yandex.ru')) {
- parse_str($UrlArray['query']);
- $Result = utf8_win($text);
- } elseif (($RefHost == 'nigma.ru')||($RefHost == 'www.nigma.ru')) {
- parse_str($UrlArray['query']);
- $Result = utf8_win($s);
- } elseif (($RefHost == 'qip.ru')||($RefHost == 'search.qip.ru')) {
- parse_str($UrlArray['query']);
- $Result = utf8_win($query);
- } elseif (($RefHost == 'aport.ru')||($RefHost == 'sm.aport.ru')) {
- parse_str($UrlArray['query']);
- $Result = $r;
- } elseif (($RefHost == 'pics.aport.ru')||($RefHost == 'audio.aport.ru')||($RefHost == 'video.aport.ru')) {
- parse_str($UrlArray['query']);
- $Result = utf8_win($r);
- }}}}
- if (!empty($Result)) {
- $Result = '<a href="http://'.$_SERVER['SERVER_NAME'].$_SERVER[REQUEST_URI].'">'.$Result."</a> \r\n";
- }
- return $Result;
- }
- $SearchText = GetSearchText();
- echo $SearchText;
- if (!empty($SearchText)) {
- $fd = fopen( StatFileName, "a" );
- fputs ($fd , "$SearchText\n");
- fclose( $fd );
- }
- function utf8_win($s) {
- $s=strtr($s,array("\xD0\xB0"=>"а", "\xD0\x90"=>"А", "\xD0\xB1"=>"б", "\xD0\x91"=>"Б",
- "\xD0\xB2"=>"в", "\xD0\x92"=>"В", "\xD0\xB3"=>"г", "\xD0\x93"=>"Г", "\xD0\xB4"=>"д",
- "\xD0\x94"=>"Д", "\xD0\xB5"=>"е", "\xD0\x95"=>"Е", "\xD1\x91"=>"ё", "\xD0\x81"=>"Ё",
- "\xD0\xB6"=>"ж", "\xD0\x96"=>"Ж", "\xD0\xB7"=>"з", "\xD0\x97"=>"З", "\xD0\xB8"=>"и",
- "\xD0\x98"=>"И", "\xD0\xB9"=>"й", "\xD0\x99"=>"Й", "\xD0\xBA"=>"к", "\xD0\x9A"=>"К",
- "\xD0\xBB"=>"л", "\xD0\x9B"=>"Л", "\xD0\xBC"=>"м", "\xD0\x9C"=>"М", "\xD0\xBD"=>"н",
- "\xD0\x9D"=>"Н", "\xD0\xBE"=>"о", "\xD0\x9E"=>"О", "\xD0\xBF"=>"п", "\xD0\x9F"=>"П",
- "\xD1\x80"=>"р", "\xD0\xA0"=>"Р", "\xD1\x81"=>"с", "\xD0\xA1"=>"С", "\xD1\x82"=>"т",
- "\xD0\xA2"=>"Т", "\xD1\x83"=>"у", "\xD0\xA3"=>"У", "\xD1\x84"=>"ф", "\xD0\xA4"=>"Ф",
- "\xD1\x85"=>"х", "\xD0\xA5"=>"Х", "\xD1\x86"=>"ц", "\xD0\xA6"=>"Ц", "\xD1\x87"=>"ч",
- "\xD0\xA7"=>"Ч", "\xD1\x88"=>"ш", "\xD0\xA8"=>"Ш", "\xD1\x89"=>"щ", "\xD0\xA9"=>"Щ",
- "\xD1\x8A"=>"ъ", "\xD0\xAA"=>"Ъ", "\xD1\x8B"=>"ы", "\xD0\xAB"=>"Ы", "\xD1\x8C"=>"ь",
- "\xD0\xAC"=>"Ь", "\xD1\x8D"=>"э", "\xD0\xAD"=>"Э", "\xD1\x8E"=>"ю", "\xD0\xAE"=>"Ю",
- "\xD1\x8F"=>"я", "\xD0\xAF"=>"Я"));
- return $s;
- }
- ?>
.......Добавлено.....
Что то не пошло у меня в кодировке 1251 на wordpress((, пришлось переделать все в utf8.
Вот скрипт: сохраняет поисковые запросы в кодировке utf-8
- <?php
- $Domain = strtolower($_SERVER['SERVER_NAME']);
- if (is_int(strpos($_SERVER['SERVER_NAME'], "www.", 0))) {
- $Domain = substr($_SERVER['SERVER_NAME'], 4);
- }
- define('StatFileName', "searchwords.html");
- function win_utf8($in_text) {
- $output = "";
- $other[1025] = "Ё";
- $other[1105] = "ё";
- $other[1028] = "Є";
- $other[1108] = "є";
- $other[1030] = "I";
- $other[1110] = "i";
- $other[1031] = "Ї";
- $other[1111] = "ї";
- for ($i = 0; $i < strlen($in_text); $i++){
- if (ord($in_text{$i}) > 191) {
- $output.="&#".(ord($in_text{$i})+848).";";
- }else {
- if (array_search($in_text{$i}, $other)===false){
- $output.=$in_text{$i};
- }else {
- $output.="&#".array_search($in_text{$i}, $other).";";
- }
- }
- }
- return $output;
- }
- function GetSearchText() {
- $Result = '';
- if (isset($_SERVER['HTTP_REFERER'])) {
- $Ref= $_SERVER['HTTP_REFERER'];
- if (!(empty($Ref))) {
- $UrlArray = parse_url($Ref);
- if ( $UrlArray['scheme'] == 'http' ) {
- $RefHost = $UrlArray['host'];
- $IsGoogle = strpos($RefHost, 'www.google.');
- if (($RefHost == 'search.msn.com') ||
- ( is_int($IsGoogle) && ($IsGoogle == 0) )) {
- parse_str($UrlArray['query']);
- $Result= $q;
- } elseif (($RefHost == 'images.google.')||($RefHost == 'video.google.')||($RefHost == 'news.google.')) {
- parse_str($UrlArray['query']);
- $Result= $q;
- } elseif (($RefHost == 'www.bing.com')||($RefHost == 'bing.com')) {
- parse_str($UrlArray['query']);
- $Result= $q;
- } elseif (($RefHost == 'www.rambler.ru')||($RefHost == 'nova.rambler.ru')||($RefHost == 'news.rambler.ru')) {
- parse_str($UrlArray['query']);
- $Result= $query;
- } elseif ($RefHost == 'top100.rambler.ru') {
- parse_str($UrlArray['query']);
- $Result= win_utf8($query);
- } elseif (($RefHost == 'go.mail.ru')||($RefHost == 'mail.ru')||($RefHost == 'soft.mail.ru')) {
- parse_str($UrlArray['query']);
- $Result= win_utf8($q);
- } elseif (($RefHost == 'yandex.ru')||($RefHost == 'www.yandex.ru')||($RefHost == 'www.ya.ru')||($RefHost == 'ya.ru')||($RefHost == 'images.yandex.ru')||($RefHost == 'news.yandex.ru')||($RefHost == 'blogs.yandex.ru')||($RefHost == 'video.yandex.ru')||($RefHost == 'm.yandex.ru')) {
- parse_str($UrlArray['query']);
- $Result = $text;
- } elseif (($RefHost == 'yandex.kz')||($RefHost == 'www.yandex.kz')||($RefHost == 'www.ya.kz')||($RefHost == 'ya.kz')||($RefHost == 'images.yandex.kz')||($RefHost == 'news.yandex.kz')||($RefHost == 'blogs.yandex.kz')||($RefHost == 'video.yandex.kz')||($RefHost == 'm.yandex.kz')) {
- parse_str($UrlArray['query']);
- $Result = $text;
- } elseif (($RefHost == 'nigma.ru')||($RefHost == 'www.nigma.ru')) {
- parse_str($UrlArray['query']);
- $Result = $s;
- } elseif (($RefHost == 'qip.ru')||($RefHost == 'search.qip.ru')) {
- parse_str($UrlArray['query']);
- $Result = $query;
- } elseif (($RefHost == 'aport.ru')||($RefHost == 'sm.aport.ru')) {
- parse_str($UrlArray['query']);
- $Result = win_utf8($r);
- } elseif (($RefHost == 'pics.aport.ru')||($RefHost == 'audio.aport.ru')||($RefHost == 'video.aport.ru')) {
- parse_str($UrlArray['query']);
- $Result = $r;
- }}}}
- if (!empty($Result)) {
- $Result = '<a href="http://'.$_SERVER['SERVER_NAME'].$_SERVER[REQUEST_URI].'">'.$Result."</a> <search><a href='$Ref'>$RefHost</a></search> \r\n";
- }
- return $Result;
- }
- $SearchText = GetSearchText();
- echo $SearchText;
- if (!empty($SearchText)) {
- if (!file_exists(StatFileName)) $SearchText = "\xEF\xBB\xBF". $SearchText;
- $fd = fopen( StatFileName, "a" );
- fputs ($fd , "$SearchText\n");
- fclose( $fd );
- }
- ?>
Сразу предупреждаю скрипт только доработан мною, сам я в php не силен, иногда полный дуб)), но если посидеть покопаться то бывает что, что то хорошее и получается сделать.
Оставьте комментарий!