Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> $_SERVER['HTTP_REFERER'] - wyodrębnianie słów kluczowych, Poszukiwanie słów kluczowych
smarcz
post 9.09.2007, 09:22:49
Post #1





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 12.05.2005

Ostrzeżenie: (0%)
-----


Witam szanowne gremium!

Szukam podpowiedzi lub rozwiązania problemu. Chciałbym wyodrębniać z ciągu zawartego w zmiennej $_SERVER['HTTP_REFERER'] - słowa kluczowe, które spowodowały odnalezienie mojej strony.

Np.: http://localhost:82/serwis/link.php?action...p;szukaj=Szukaj
(...)?action=znajdz&q=slawek+micha%B3&szukaj=Szukaj
chciałbym wyodrębnić tylko zawartość: q=slawek+micha%B3 - i oddzielić oba słowa kluczowe slawek i michal jako oddzielne.

Chodzi mi o skonstruowanie takiego rozwiązania, które będzie mogło badać przekierowania z google, itp...

co zastosować - wyrażenie regularne, explode - a może coś innego??

Wyrażenie regularne

$string = $_SERVER['HTTP_REFERER'];

preg_match_all("@&(.*?)&@", $string, $ciag);

echo '<pre>';
print_r($ciag);
echo '</pre>';


powoduje taki wynik:

Array
(
[0] => Array
(
[0] => &q=slawek+micha%B3&
)

[1] => Array
(
[0] => q=slawek+micha%B3
)

Z góry dzięki za wszelkie rady!
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
1010
post 9.09.2007, 10:38:07
Post #2





Grupa: Zarejestrowani
Postów: 749
Pomógł: 37
Dołączył: 3.10.2006

Ostrzeżenie: (0%)
-----


nie rozumiem jaki problem...

explode ("+", $zmienna); i już...


--------------------
Go to the top of the page
+Quote Post
smarcz
post 9.09.2007, 10:46:03
Post #3





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 12.05.2005

Ostrzeżenie: (0%)
-----


Być może źle sprecyzowałem - mamy w zmiennej $_SERVER['HTTP_REFERER'] pewien ciąg za pomocą którego zostaliśmy odnalezieni np.: przez google - (...?action=znajdz&q=slawek+micha%B3&szukaj=Szukaj). Z tego ciągu chcę wyodrębnić słowa kluczowe zawarte w q=; Wiem że są one oddzielone znakiem plusa i potrafię zastosować do tego explode() ale jak wyodrębnić sam ciąg który zaczyna się q=...jakieś słowa kluczowe ... - i tego nie potrafię zrobić - później nie ma już problemu. Tak więc moje pytanie to - jak z tego ciągu wyodrębnić wpierw ten ciąg q=slawek+micha%B3. No chyba że jest inne rozwiązanie - ale proszę jaśniej.

Z góry dzięki?

Kto pyta nie błądzi smile.gif
Go to the top of the page
+Quote Post
Eqalizer
post 9.09.2007, 10:48:34
Post #4





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 12.01.2006

Ostrzeżenie: (0%)
-----


  1. <?php
  2. $str = "http://localhost:82/serwis/link.php?action=znajdz&q=slawek+micha%B3+zenek&szukaj=Szukaj";
  3. preg_match_all("@q=(.*?)&@", $str, $tab);
  4.  
  5. echo "<pre>";
  6. print_r($tab);
  7. echo "</pre>";
  8. ?>


  1. Array
  2. (
  3. [0] => Array
  4. (
  5. [0] => q=slawek+micha%B3+zenek&
  6. )
  7.  
  8. [1] => Array
  9. (
  10. [0] => slawek+micha%B3+zenek
  11. )
  12.  
  13. )

No i explode z drugiego wyniku.

Ten post edytował Eqalizer 9.09.2007, 10:54:17
Go to the top of the page
+Quote Post
b_chmura
post 9.09.2007, 10:51:15
Post #5





Grupa: Zarejestrowani
Postów: 813
Pomógł: 34
Dołączył: 18.03.2007
Skąd: o stamtąd

Ostrzeżenie: (0%)
-----


Kod
'#[q=](.*?)\+#si'


coś w ten deseń
Go to the top of the page
+Quote Post
smarcz
post 9.09.2007, 11:54:22
Post #6





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 12.05.2005

Ostrzeżenie: (0%)
-----


Eqalizer - bardzo dziękuje za podpowiedź. Właśnie tego szukałem. Trochę inne sformułowanie niż zastosowałem ja, ale jak znaczące. W zupełności rozwiązało to moje nieudane próby z zastosowaniem nawet ereg_replace i ereg do wyszukiwania ciągów.
Go to the top of the page
+Quote Post
camillos
post 15.11.2007, 23:00:47
Post #7





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 26.06.2007

Ostrzeżenie: (0%)
-----


Odpowiedź spóźniona, ale może komuś się przyda.
Ja używam bardziej złożonej funkcji na różne szukarki, wyszukuje też wyszukane pliki graficzne.
  1. <?php
  2. FUNCTION search_keyword ($ref)
  3. {
  4. if(eregi('http://images.google',$ref)) {$sign='imgurl=';}
  5. else if (eregi('google',$ref)&&eregi('navclient',$ref)&&eregi('q=t&',$ref)) {$sing='q=t&';}
  6. else if (eregi('google',$ref)||eregi('szukacz.pl',$ref)||eregi('altavista',$ref)||eregi('netsprint',$ref)||eregi('search.msn',$ref)||eregi('search.live',$ref))
  7. {$sign='q=';}
  8. else if (eregi('onet', $ref))
  9. {$sign='qt=';}
  10. else if (eregi('szukaj.wp.pl',$ref))
  11. {$sign='szukaj=';}
  12. else if (eregi('search.yahoo.com',$ref))
  13. {$sign='p=';}
  14. else
  15. { $nokey='';
  16. return $nokey;
  17. }
  18. if ($sing=='q=t&')
  19. {
  20. $qwe0= explode($sign,$ref);
  21. $qwe1= explode('q=',$qwe0[1]);
  22. } else $qwe1= explode($sign,$ref);
  23. if (eregi("imgrefurl",$qwe1[1]))
  24. {$img=explode("imgrefurl=",$qwe1[1]);
  25. $imge=explode('/',$img[0]);
  26. $im=count($imge);
  27. $qwe3=$imge[$im-1];
  28. $qwe3=str_replace('&','',$qwe3);
  29. }
  30. else if (eregi("&",$qwe1[1]))
  31. {$qwe2=explode('&',$qwe1[1]);
  32. $qwe3=$qwe2[0];
  33. }
  34. else {
  35. $qwe3=$qwe1[1];}
  36. $qwe4 = odgooglanie($qwe3);
  37. echo "klucz: $qwe4 <br>";
  38. return $qwe4;
  39. }
  40. ?>
Go to the top of the page
+Quote Post
alfatka
post 25.12.2014, 16:28:01
Post #8





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 25.12.2014

Ostrzeżenie: (0%)
-----


Witam. Prosze o pomoc.
Ustawiłam w skrypcie zmienną $_SERVER['HTTP_REFERER'], aby wpisywała do tablicy pełny adres w celu wyodrębnienia słów kluczowych.

I okazało się, że nie mogę wyodrębnić tych słów, bo ich tu nie widać, powinna być po q=.
Jak zrobić, żeby były widoczne?

Mam taki zwrot zmiennej:
http : // www.google. pl / url?sa=t&rct=j&q=&esrc=s&source=web&cd=3&ved=0CC8QFjAC&url=http%3A%2F%2Fdomena.com.pl%2Fsubdomena&ei=PiacVMfeB8auU-yig6AL&usg

Ściągnęłam plik logów z serwera i rozpakowałam i tam są te słowa kluczowe po q=, ale chciałam, aby je wyłapywała zmienna $_SERVER['HTTP_REFERER'], aby je stąd wyodrębnić.

Ten post edytował alfatka 25.12.2014, 16:45:40
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 01:07