Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Integracja wyszukiwarek/ki (google) z wewnętrzną wyszukiwarką
dudi1261
post 5.09.2010, 18:01:14
Post #1





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 25.07.2008

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


Witam.
Tworzę portal na ktorym bedzie mozna stworzyc wlasna strone. Nie mam pojecia jak zintegrowac wyszukiwarke na mojej stronie z google (i jesli sie da jednoczesnie z innymi wyszukiwarkami). Integracja mialaby dzialac w ten sposob, ze internauta wpisuje w google "kurs html" i w jednej pozycji na liscie znalezionych stron wyszukiwarki znajduje sie link do mojej strony w której jest wynik z wyszukiwania "kurs html". Widzialem wiele razy cos takiego i mysle ze to przyciagnie uzytkownika na moj portal i ze bedzie mogl prosciej znalezc konkretna strone niz korzystajac z wyszukiwarki stron na moim portalu.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 17)
masiakla
post 5.09.2010, 19:31:15
Post #2





Grupa: Zarejestrowani
Postów: 80
Pomógł: 17
Dołączył: 4.09.2010
Skąd: far far away

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


Sprawdzaj czego szuka user u ciebie w wyszukiwarce, plus to co możesz wyciągnąć z referera i na jakiejś podstronie twórz linki z query do twojej wyszukiwarki. Możesz chyba tez próbować umieszczać je w sitemapie.

Ten post edytował masiakla 5.09.2010, 19:31:58
Go to the top of the page
+Quote Post
dudi1261
post 5.09.2010, 20:26:39
Post #3





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 25.07.2008

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


Nie rozumie prawie niz z Twojej wypowiedzi. Prosilbym jasniej i konkretniej. Prawdopodobnie trudno by bylo wypozycjonowac portal tak by wpisujac w google przykladowa nazwe strony to moja wyszukiwarka bylaby na pierwszej stronie? Nie znam sie na dzialaniu wyszukiwarek, a w pozycjonowanie dopiero sie zaglebiam, bo wczesniej nie bylo mi to potrzebne.
Go to the top of the page
+Quote Post
masiakla
post 5.09.2010, 20:34:20
Post #4





Grupa: Zarejestrowani
Postów: 80
Pomógł: 17
Dołączył: 4.09.2010
Skąd: far far away

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


Tworzysz powiedzmy w portalu podstronę "ostatnio wyszukiwane" łapiesz to co user szuka u ciebie i dodajesz tam link z zapytaniem do twojej wyszukiwarki. Druga część sprawdzasz skąd przybywa użytkownik, jeżeli to jest google to w refererze będziesz miał adres(nie zawsze, ale załózmy, że jednak większośc userów przesyła referera) podobny do tego
Kod
http://www.google.pl/search?client=opera&rls=pl&q=szukanafraza&sourceid=opera&ie=utf-8&oe=utf-8
, pobierasz np regexpem szukanafraza i wrzucasz odnośnik z zapytaniem do twojej wyszukiwarki na podstronę "ostatnio wyszukiwane". Google indeksuje te adresy i po robocie. Można dodatkowo umieścić w sitemap.xml. Tyle na ten temat.

Ten post edytował masiakla 5.09.2010, 20:35:52
Go to the top of the page
+Quote Post
dudi1261
post 5.09.2010, 20:44:47
Post #5





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 25.07.2008

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


Nie do konca rozumie, ale udalo mi sie wywnioskowac iz mam pobierac link z jakiego uzytkownik przychodzi do mojej wyszukiwarki. Wybierac z tego linku zawartosc $_GET['q'], wstawiac w link w mojej wyszukiwarce i znajduje to o co uzytkownik pytal na google. Zatem musze wyszukiwarke dodac do mapy strony i w tytule wstawic np. "Wyszukiwanie na portalu ...". Zadko taki tekst przyciaga ;D Moglbys zaproponowac lepsza nazwe, bardziej kuszaca do klikniecia? smile.gif
Go to the top of the page
+Quote Post
masiakla
post 5.09.2010, 20:49:05
Post #6





Grupa: Zarejestrowani
Postów: 80
Pomógł: 17
Dołączył: 4.09.2010
Skąd: far far away

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


Ja zawsze pisze "ostatnio wyszukiwane frazy" i tam umieszczam całość tego dziadostwa, nie ma dla tego chyba jakiejś bardziej przyciągającej nazwy, z resztą wątpię aby użytkownik użytkownik dysponujący wyszukiwarką na stronie, korzystał z ostatnio wyszukiwane frazy.
Go to the top of the page
+Quote Post
dudi1261
post 5.09.2010, 20:54:28
Post #7





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 25.07.2008

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


Moj ostatni post mial brzmiec bardziej jak pytanie czy to zadziala winksmiley.jpg Nie napisales nie, zatem prawdopodobnie bedzie dzialalo. Do startu mojego portalu jeszcze troche czasu minie, a ja kurcze nie mam jak tego wytestowac ;d
Znasz jakis szybki sposob bym mogl to sprawdzic?

@ edit
Nie za bardzo potrafie sie posluzyc regexpem (preg_match). Jaka funkcja?

Ten post edytował dudi1261 5.09.2010, 21:04:13
Go to the top of the page
+Quote Post
masiakla
post 5.09.2010, 21:15:31
Post #8





Grupa: Zarejestrowani
Postów: 80
Pomógł: 17
Dołączył: 4.09.2010
Skąd: far far away

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


preg_match_all, co do testów to jest pewnie jakiś plugin do firefoxa, który pozwala zmienić referera. Od bidy z curlem można tez coś szybko nabazgrać.
Go to the top of the page
+Quote Post
dudi1261
post 6.09.2010, 06:32:21
Post #9





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 25.07.2008

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


Wydaje mi się, ze najlepiej jest napisac wyrazenie regularne ktore znajduje "q="fraza"&". Niestety nie moge pojąć tych wyrazen i nie bardzo rozumie jak je ulozyc.
Go to the top of the page
+Quote Post
masiakla
post 6.09.2010, 15:01:45
Post #10





Grupa: Zarejestrowani
Postów: 80
Pomógł: 17
Dołączył: 4.09.2010
Skąd: far far away

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


Kod
#http(s?)://(www\.)?google.[a-z]{2,3}/search\?(.*)&q=(.+)&?.*#Uis

mniej więcej nie chce mi się sprawdzać więc może się trafić, że zbierze coś za dużo.

no i zbiera poniżej poprawione:
Kod
#https?://(www\.)?google.[a-z]{2,3}/search\?.*&?q=([^&]+)&?.*#is

wszystko będzie w trzeciej grupie

Ten post edytował masiakla 6.09.2010, 15:07:02
Go to the top of the page
+Quote Post
phpion
post 6.09.2010, 15:04:28
Post #11





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Zamiast wyrażeń regularnych można skorzystać z parse_url + parse_str.
Go to the top of the page
+Quote Post
masiakla
post 6.09.2010, 15:19:20
Post #12





Grupa: Zarejestrowani
Postów: 80
Pomógł: 17
Dołączył: 4.09.2010
Skąd: far far away

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


Można też to zrobić za pomocą strpos oraz substr, ale regexpy wydają mnie się najwygodniejsze.
Go to the top of the page
+Quote Post
dudi1261
post 6.09.2010, 15:44:21
Post #13





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 25.07.2008

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


gdy wstawiam oba podane przez masiakla wyrazenia regularne to wyswietla sie blad:
Warning: preg_match_all() expects at least 3 parameters, 2 given in /home/qsite/ftp/szukaj.php on line 5
Go to the top of the page
+Quote Post
masiakla
post 6.09.2010, 16:19:29
Post #14





Grupa: Zarejestrowani
Postów: 80
Pomógł: 17
Dołączył: 4.09.2010
Skąd: far far away

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


preg_match_all rezultaty zwraca poprzez referencję, wpisz nazwę jakiejś zmiennej jako trzeci argument i w niej będziesz miał wszystkie grupy. Więcej w dokumentacji funkcji
Go to the top of the page
+Quote Post
dudi1261
post 6.09.2010, 16:54:16
Post #15





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 25.07.2008

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


Juz mam prawie wszystko smile.gif Zrobilem nieco inaczej, mianowicie:

Kod

      function parseUrl($url) {
        $out = explode('q=', $url);
        $out = explode('&', $out[1]);
        return $out[0];
      }
      $fraza = parseUrl($_SERVER['HTTP_REFERER']);
      header('Location: /szukaj/'.$fraza.'.qs');


kolega nieco pomogl. Potrzebuje if'a, ktory ma wyszukiwac w refererze czy domena to "google." (koncowki moga byc rozne). Jak to zrobic?
Go to the top of the page
+Quote Post
masiakla
post 6.09.2010, 16:57:20
Post #16





Grupa: Zarejestrowani
Postów: 80
Pomógł: 17
Dołączył: 4.09.2010
Skąd: far far away

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


  1. preg_match("#google\.[a-z]{2,3}#is", $url)

ogólnie mogłeś to zrobić tak:
  1. preg_match_all("#https?://(www\.)?google.[a-z]{2,3}/search\?.*&?q=([^&]+)&?.*#is", $url, $matches);
  2. print_r($matches);

W jednej funkcji masz zawarte że to z google, że ma różne końcówki, może być http jak i https.

Na pewno działa http://img.mephir.net/screens/snap0290.jpg

Ten post edytował masiakla 6.09.2010, 17:45:38
Go to the top of the page
+Quote Post
dudi1261
post 6.09.2010, 17:42:55
Post #17





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 25.07.2008

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


Zapomnialem dodac $url w moim kodzie winksmiley.jpg Wstawiajac Twoje podane wyzej kody nie dzialalo

// Mam juz wszystko gotowe smile.gif testuje aktualnie na moim portalu. Dzieki za pomoc smile.gif

Pozdrawiam

Ten post edytował dudi1261 6.09.2010, 17:43:44
Go to the top of the page
+Quote Post
jang
post 6.09.2010, 19:05:12
Post #18





Grupa: Zarejestrowani
Postów: 101
Pomógł: 11
Dołączył: 2.02.2005

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


Cytat(masiakla @ 6.09.2010, 17:57:20 ) *
ogólnie mogłeś to zrobić tak:
  1. preg_match_all("#https?://(www\.)?google.[a-z]{2,3}/search\?.*&?q=([^&]+)&?.*#is", $url, $matches);
  2. print_r($matches);


Jeśli https to wtedy link zaczyna się tak:
  1. https://encrypted.google

więc albo np.:
  1. preg_match_all("#https?://(www\.)?(encrypted\.)?google.[a-z]{2,3}/search\?.*&?q=([^&]+)&?.*#is", $url, $matches);

albo jeśli info o tym, czy to połączenie bezpieczne czy nie, jest niepotrzebne to np. tak:
  1. preg_match_all("#https?://[a-z]{3,9}\.google.[a-z]{2,3}/search\?.*&?q=([^&]+)&?.*#is", $url, $matches);


--------------------
$email = filter_var(filter_var($email, FILTER_SANITIZE_EMAIL), FILTER_VALIDATE_EMAIL);
if($email === false) {
// Houston, we have a problem....
}
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: 19.07.2025 - 14:45