![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 52 Pomógł: 0 Dołączył: 12.09.2003 Ostrzeżenie: (0%) ![]() ![]() |
Mam mały kłopot. Piszę klasę do obsługi statystyk strony. Chciałbym, aby zapisywane były również słowa kluczowe, które zostały podane w wyszukiwarkach z których nastąpiło przejście do serwisu. Jednak za diabła nie mogę znaleźć metody na zapisanie słów kluczowych ze zmiennej $HTTP_REFERER.
Problem polega na tym, że chciałbym pobierać tylko dokładne słowa wpisane w polu input wyszukiwarki, ale nie wiem jak je automatycznie wydobywać ![]() Wiem, że można to zrobić, bo np. Home.pl to rejestruje ![]() Może ktoś już się kiedyś z tym uporał. -------------------- pozdrawiam
Krzysiek |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 691 Pomógł: 0 Dołączył: 6.08.2003 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Mam mały kłopot. Piszę klasę do obsługi statystyk strony. Chciałbym, aby zapisywane były również słowa kluczowe, które zostały podane w wyszukiwarkach z których nastąpiło przejście do serwisu. Jednak za diabła nie mogę znaleźć metody na zapisanie słów kluczowych ze zmiennej $HTTP_REFERER.
W HTTP_REFERER jest teoretycznie URL poprzedniego dokumentu, więc to jak tam będą zapisane słowa kluczowe zależy od przeglądarki. Np. dla googla URL wygląda mniej więcej tak: Kod http://www.google.pl/search?q=forum+php+pl&ie=ISO-8859-2&hl=pl&btnG=Szukaj+z+Google&lr=
a rozparsować to można w taki sposób: [php:1:5f8d678b61]<?php preg_match('/[?&]q=(.*?)(&|$)/', urldecode($_SERVER['HTTP_REFERER']), $m); $slowa = explode(' ', $m[1]); print_r($slowa); ?>[/php:1:5f8d678b61] |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 52 Pomógł: 0 Dołączył: 12.09.2003 Ostrzeżenie: (0%) ![]() ![]() |
Zgadza się, ale dla każdej innej wyszukiwarki będzie inny układ słów w URLu.
Zastanawiam się nad prawidłowością, która pozwoliłaby na wyszukanie słów kluczowych w ciągu z dowolnej wyszukiwarki. -------------------- pozdrawiam
Krzysiek |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 680 Pomógł: 0 Dołączył: 1.10.2002 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Cytat Zgadza się, ale dla każdej innej wyszukiwarki będzie inny układ słów w URLu.
Zastanawiam się nad prawidłowością, która pozwoliłaby na wyszukanie słów kluczowych w ciągu z dowolnej wyszukiwarki. Nie ma takiego sposobu, musisz niestety rozróżniać wyszukiwarki... Myślę, że nie powinieneś mieć z tym problemów, bo układ raczej się nie zmienia. -------------------- "Czerp z innych, ale nie kopiuj ich. Bądź sobą." Michel Quoist
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 36 Pomógł: 0 Dołączył: 10.10.2003 Ostrzeżenie: (0%) ![]() ![]() |
KaMeLeOn napisał:
Cytat Myślę, że nie powinieneś mieć z tym problemów, bo układ raczej się nie zmienia.
Układ nie zmienia się tylko w takim sensie, że słowa kluczowe niezależnie od wyszukiwarki będą zawarte po znaku '?'. Sam Onet pozwala na kilka metod wyszukiwania, przyjrzyj się uważnie http_refferer: inny układ pojawia się dla wyszukiwarki, inny dla katalogu, jeszcze inny dla wyszukiwania złożonego. Dla wszystkich układów trzeba ułożyć odpowiedni warunek i osobno dla każdej wyszukiwarki ![]() Utrudnieniem moze być fakt, że niektóre wyszukiwarki podają wyniki zaczynając od tego samego ciągu znaków, np. dla googla i interii jest to q ![]() Mam nadzieję, że to pomoże. -------------------- Nie ma jutra bez komputra.
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 222 Pomógł: 0 Dołączył: 3.04.2003 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
A może warto podpatrzeć jak to robią inne skrypty do statystyk.
-------------------- pozdrawiam, chfast
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 222 Pomógł: 0 Dołączył: 3.04.2003 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Mam coś...
[php:1:dfbaa16fc1]<?php //wprowadzasz HTTP_REFERER, dostajesz słowa kluczowe function getKeywords($refer){ $sr[]=array("wp","szukaj","Wirtualna Polska"); $sr[]=array("poland","query","Poland.com"); $sr[]=array("ahoj","q","Ahoj.pl"); $sr[]=array("altavista","q","Altavista.com"); $sr[]=array("google","q","Google"); $sr[]=array("yoyo","wpis","Yoyo.pl"); $sr[]=array("onet","qt","Onet.pl"); $sr[]=array("hoga","qt","Hoga.pl"); $sr[]=array("arena","qt","Arena.pl"); $sr[]=array("emulti","wyr","Emulti.pl"); $sr[]=array("abacho","q","Abacho"); $sr[]=array("bestoftheweb","q","Best Of The Web"); $sr[]=array("bluewin","q","Bluewin"); $sr[]=array("fireball","q","Fireball"); $sr[]=array("kvasir","q","Kvasir"); $sr[]=array("msn","q","MSN"); $sr[]=array("search","q","Search"); $sr[]=array("infoseek","qt","InfoSeek"); $sr[]=array("acoon","begriff","Acoon"); $sr[]=array("alltheweb","query","All The Web"); $sr[]=array("evision","query","Evision"); $sr[]=array("aol","query","AOL"); $sr[]=array("freenet","query","FreeNet"); $sr[]=array("lycos","query","Lycos"); $sr[]=array("mamma","query","Mamma"); $sr[]=array("big-search","search","Big Search"); $sr[]=array("cypria","search","Cypria"); $sr[]=array("excite","search","Excite"); $sr[]=array("ask","ask","Ask"); $sr[]=array("netscape","search","Netscape"); $sr[]=array("metaspinner","qry","MetSpinner"); $sr[]=array("nbci","keyword","Nbci"); $sr[]=array("web","su","North Ernlight"); $sr[]=array("yahoo","p","Yahoo"); $sr[]=array("szukacz.icm","q","Szukacz-ICM"); $sr[]=array("yandex","text","Yandex.pl"); $sr[]=array("netsprint","qt","netsprint"); $sr[]=array("o2",szukaj,"O2.pl"); $search=''; // parsuj url'a $url=parse_url($refer); // twórz zmienne z zapytania url'a parse_str($url['query']); // liczba znanych wyszukiwarek $ile=count($sr); // zidentyfikuj wyszukiwarke for($n=0; $n<$ile; $n++) { if(eregi($sr[$n][0],$refer) && isset($$sr[$n][1])) { $search=$sr[$n][2]; break; } } // slowa kluczowe if($search) { $srq=$$sr[$n][1]; $srq = strtolower($srq); $sign = array("%22","%23","%24","%25","%26","%27","%2a","%2b","%2c","%5c"); while(list($keysign,$valuesign)=each($sign)) $srq = str_replace ($valuesign, "", $srq); $quest=str_replace ("+", " ", $srq); $quest=stripslashes($srq); $srq=rawurldecode($srq); $ret[1]=strtolower($srq); $ret[0]=$search; } return $ret; } ?>[/php:1:dfbaa16fc1] Uwaga! Kod pochdzi ze skryptu Istats 4.2 i został zamieszczony bez zgody autora. -------------------- pozdrawiam, chfast
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 21.01.2004 Ostrzeżenie: (0%) ![]() ![]() |
Sprawdził ktoś ten skrypt czy działa ? Trzeba w nim coś zmieniać czy wystaczy wstawić tak jak jest do HTTP_REFERER ?
|
|
|
![]()
Post
#9
|
|
![]() Administrator serwera Grupa: Przyjaciele php.pl Postów: 909 Pomógł: 0 Dołączył: 12.08.2003 Skąd: /var/www/wroclaw.php Ostrzeżenie: (0%) ![]() ![]() |
Uzyj:[php:1:bfa789fbff]<?php
print getKeywords($_SERVER['HTTP_REFERER']); ?>[/php:1:bfa789fbff]i sam zobacz... ![]() -------------------- Powrót do przeszłości :)
![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 18.08.2025 - 18:13 |