Nasıl arama motorları atıfta sorgu bilgi alabilirsiniz

1 Cevap php

Ben sayfayı bulmak için kullanılan birisi, bu yönlendiren sayfa $ get_ ['q'] URL'sini (ve yahoo $ get_ ['p'] için) olduğunu sorguyu kullanmak istiyorum. Ben bu nasıl kullanabilirim? Ben PAGE ($ get_ ['q']) atıfta bulunarak = $ sorgu gibi bir şey istiyorum, ama ben sadece bunu söylemek için yolu anlamaya olamaz.

1 Cevap

Aradığınız bilgi $_SERVER['HTTP_REFERER'] mevcuttur

Örneğin, bu URL ile bir sayfa geliyor: http://tests/temp/temp-2.php?q=test+glop, bu kod bölümü:

var_dump($_SERVER['HTTP_REFERER']);

Verir:

string 'http://tests/temp/temp-2.php?q=test+glop' (length=40)


You can the use parse_url to get the query string from that URL :

$query = parse_url($_SERVER['HTTP_REFERER'], PHP_URL_QUERY);
var_dump($query);

alacak:

string 'q=test+glop' (length=11)


Now, you can parse that query string with parse_str ; this code :

$params = array();
parse_str($query, $params);
var_dump($params);

Alacak:

array
  'q' => string 'test glop' (length=9)


And, finally, you can check whether the parameter that interests you is in that array :

if (isset($params['q'])) {
    var_dump($params['q']);
}

Bu örnekte, bize verecektir:

string 'test glop' (length=9)


Et voila ;-)

Sadece Referer anlamına istemci tarafından gönderilen unutmayın:

  • Bu da sahte olabilir, ve bir şey içerebilir - kötü şeyler de dahil olmak üzere (beware SQL injections and XSS !)
  • Bu optionnal olduğu: tarayıcı göndermek için gerekli değildir.