2011-05-27 51 views
0

謝謝.., 我想取(知道)的搜索關鍵字網址 例:在谷歌或冰等 假設。我們正在尋找一個關鍵詞, 它顯示結果,我的網址是第一位的, 如果用戶點擊了網址,它會來到我的網站。所以基本上我想,搜索(Google搜索)URL關於提前搜索關鍵字網址

請幫助我們

回答

1

您可以檢查Referer頭。如果你從谷歌的搜索查詢的鏈接,它會是這個樣子:

http://www.google.es/search?client=safari&rls=en&q=query&ie=UTF-8&oe=UTF-8&redir_esc=&ei=ppvfTfy8F4axhAfX2unDCg 

Q參數會告訴你的搜索詞。

Bing有一個非常類似的URL格式...查詢參數甚至被命名爲相同!

http://www.bing.com/search?q=query&go=&form=QBLH&filt=all&qs=n&sk=&sc=7-5 
+0

我想準確地獲取搜索到的URL。它想要存儲在我的數據庫中 – 2011-05-27 12:46:21

1

你必須檢查$_SERVER['HTTP_REFERER'],但是知道它可能是空的(例如代理剝離它,谷歌SSL搜索等)。

檢查$_SERVER['HTTP_REFERER']將顯示用戶來自搜索引擎結果頁面的URL,您必須解析它以提取關鍵字,如何執行取決於搜索引擎。

+0

我希望獲取搜索到的URL。它想要存儲在我的數據庫與搜索關鍵字..如何做到這一點,請 – 2011-05-27 12:48:55

1

您可以使用HTTP_REFERER

<?php 
echo $_SERVER['HTTP_REFERER']; 
?> 

這種可能,但是,是空的,由於代理,SSL或其他問題。

+0

我想要抓取搜索到的網址。它想要在我的數據庫中存儲關鍵字搜索..如何做到這一點請 – 2011-05-27 12:49:00

+0

你需要解析它,例如與'parse_url'。看到Wiz的答案。 – Sorrow 2011-05-27 12:53:23

3

你想要的是引用URL,你可以使用$_SERVER['HTTP_REFERER']得到並解析出這個詞。

<?php 
    $url = $_SERVER['HTTP_REFERER']; 
    /* break the url down into its components */ 
    $params = parse_url($url); 

    /* make sure its actually filled with something useful */ 
    if (array_key_exists("host", $params)) 
    { 
     /* parse the query params for easy keyword retrieval */ 
     parse_str($params["query"], $query); 

     /* by search engine */ 
     switch ($params["host"]) 
     { 
      case "www.google.com": 
       echo "Google Search Term: " . $query["q"]; 
       break; 
      case "www.bing.com": 
       echo "Bing Search Term: " . $query["q"]; 
       break; 
      case "search.yahoo.com": 
       echo "Yahoo Search Term: " . $query["p"]; 
       break; 
      /* more search engines here .... */ 
     } 
    } 
?> 

應當注意的是,HTTP_REFERER不是100%可靠,因爲在客戶端(瀏覽器)實際上是不需要的,以提供其在請求中。此外,來自安全網址(例如encrypted.google.com)的網址也不會提供。