|
Този урок ще опише процеса, чрез който може да засечете търсената фразата на потребителя пристигнал при вас от дадена търсачка. Това може да направите като изследвате URL-то на търсачката, от която е пристигнал потребителя. Цялата информация е запаметена в глобалната променлива $_SERVER['HTTP_REFERER'], която обаче в някои случаи може и да е празна, но това нещо за съжеление не може да го контролирате, защото вашето ISP има възможноста да ви изтрива стойноста на променливата.
Тъй като всяка една търсачка използва метода GET за изпращане на данните от формуляр, то всяка една променлива се съдържа в HTTP_REFERER. За тази цел ще си направим един прост клас, който ще обработва всички данни и който ще съдържа няколко метода за извеждане на търсената от нас информация. CODE
Кратък анализ на класа Като начало си дефинираме няколко променливи, които по късно ще инициализираме с търсената от нас информация. $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 и не прави нищо друго. Другите две помощни класови функции връщат съответно търсената фраза, ако има такава и името на търсачката.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||









