Не сте регистриран! Регистрирайте се БЕЗПЛАТНО, за да използвате услугите на сайта!

   Рубрики
 
 
 
 

 Форуми
» SEO и оптимизация
» Всичко за PHP и Perl
» Всичко за C, C++ и .NET
» Всичко за Java и JSP
» Всичко за SQL и MySQL
» Всичко за XHTML и CSS
» Презентация на сайтове
 Какво е търсил посетителя преди да попадне на вашия сайт?
  1. Какво е търсил посетителя преди да попадне на вашия сайт - I
  2. Примерно използване на класа
Mutatos
     
Автор  Mutatos (15.01.2006 15:07)  съобщение до автора
Погледнат  2332 пъти  добави към любими
Оценка  добави коментар
Гласове  --  изпрати на приятел
Коментари  (0)  абонирай се за PHP
    Страница 1 / 2

 



Този урок ще опише процеса, чрез който може да засечете търсената фразата на потребителя пристигнал при вас от дадена търсачка. Това може да направите като изследвате URL-то на търсачката, от която е пристигнал потребителя. Цялата информация е запаметена в глобалната променлива $_SERVER['HTTP_REFERER'], която обаче в някои случаи може и да е празна, но това нещо за съжеление не може да го контролирате, защото вашето ISP има възможноста да ви изтрива стойноста на променливата.


Тъй като всяка една търсачка използва метода GET за изпращане на данните от формуляр, то всяка една променлива се съдържа в HTTP_REFERER. За тази цел ще си направим един прост клас, който ще обработва всички данни и който ще съдържа няколко метода за извеждане на търсената от нас информация.

CODE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
<?php
class Engine
{
   
/* Пълният referer- domain+uri */
   
var $referer;
  
   
/* Фраза */
   
var $keyword;
  
   
/* Име на търсачката */
   
var $referer_name;
  
   
/* Дефиниции на търсачките */
   
var $search_referer = array(
       
array('google','q'),
       
array('yahoo','p'),
       
array('msn','q'),
       
array('altavista','q'),
       
array('alltheweb','q'),
       
array('aol','query'),
       
array('lycos','query'),
       
array('dmoz','search')
        )
;
  
   
/**
    * Конструктор на класа
    */
   
function Engine($referer)
    {
       
$this->referer = $referer;
   
}
  
   
/**
    * Функция, проверяваща, дали потребителя е пристигнал
    * от търсачка, и ако да то тогава анализира url-то
    *
@return boolean true|false
    */
   
function isSearchEngine()
    {
       
for($i=0; $i<count($this->search_referer); $i++)
        {
            
if(eregi($this->search_referer[$i][0], $this->referer))
            {
               
$parse = parse_url($this->referer);
               
parse_str($parse['query'], $output);
               
$this->keyword         = $output[$this->search_referer[$i][1]];
               
$this->referer_name = $this->search_referer[$i][0];
               
return true;
               
break;
           
}
        }
       
return false;
   
}
  
   
/**
    * Функция, която връща търсената фразата
    */
   
function getKeyword()
    {
       
return $this->keyword;
   
}
  
   
/**
    * Функция, която връща името на търсачката
    */
   
function getRefererName()
    {
       
return ucfirst($this->referer_name);
   
}

}
?>



Кратък анализ на класа

Като начало си дефинираме няколко променливи, които по късно ще инициализираме с търсената от нас информация.

$referer - съдържа пълното URL, което се съдържа в променливата $_SERVER['HTTP_REFERER']
$keyword - е търсената от посетителя фраза, чрез която е намерен вашия сайт в търсачката.
$referer_name - е името на търсачката, което ще получите от URL-то по-късно
$search_referer - е масив, който съдържа имената на най-популярните търсачки и променливите, в който са запаметени фразите.

Ако погледнете например URL-то на [Google], ще откриете следното:

http://www.google.com/search?hl=bg&q=it-place&btnG=%D0%A2%D1%8A%D1%80%D1%81%D0%B5%D0%BD%D0%B5&lr=lang_bg

Фразата, която търсите се съдържа в променливата q. Така е и при повечето търсачки.


Конструктора на класа [Engine()], приема като параметър променливата $_SERVER['HTTP_REFERER'] и инициализира класовата променлива $referer.

Функцията isSearchEngine() е най-важната класова функция, която изпълнява най-важната роля. Тя преминава в един цикъл целия масив на търсачките, като проверява, дали името на дадена търсачка се среща в предадения referer. Ако това наистина е така, тя анализира низа и от него извлича фразата, която потребителя е търсил и с нея инициализира класовата променлива $keyword. В противен случай, фукцията връща false и не прави нищо друго.

Другите две помощни класови функции връщат съответно търсената фраза, ако има такава и името на търсачката.



  Следваща страница >> 




Още уроци от тази рубрика


 За автора: Mutatos  
Николай Николов се занимава с програмиране на PHP/MySQL повече от 6 години. Заедно с разработката на уеб приложения на PHP, се занимава с Java, XML и Webservices.
   
 1 посетител чете този урок (0 потребители и 1 гост)  
Активни потребители: ---
   
  

Еmail  
 

 

 
  • Интересно от Софтуер
 



IT-PLACE.NET © 2004 - 2008