Je veux utiliser la requête que quelqu'un a utilisé pour trouver ma page, ceux-ci sont dans l'URL de la page de référence $ GET _ ['q'] (et pour yahoo $ GET_ [ 'p']). Comment puis-je les utiliser? Je veux quelque chose comme $ query = REFERRING PAGE ($ GET _ ['q']), mais je n'arrive pas à trouver le moyen de le dire.Comment puis-je obtenir des informations de requête de moteurs de recherche
1
A
Répondre
5
Les informations que vous recherchez est disponible dans $_SERVER['HTTP_REFERER']
Par exemple, venant d'une page avec cette URL: http://tests/temp/temp-2.php?q=test+glop
, cette partie du code:
var_dump($_SERVER['HTTP_REFERER']);
donne:
string 'http://tests/temp/temp-2.php?q=test+glop' (length=40)
Vous pouvez utiliser parse_url
pour obtenir la chaîne de requête de ce U RL:
$query = parse_url($_SERVER['HTTP_REFERER'], PHP_URL_QUERY);
var_dump($query);
vous obtiendrez:
string 'q=test+glop' (length=11)
Maintenant, vous pouvez analyser cette chaîne de requête avec parse_str
; ce code:
$params = array();
parse_str($query, $params);
var_dump($params);
Est-ce que vous obtenez:
array
'q' => string 'test glop' (length=9)
Et enfin, vous pouvez vérifier si le paramètre qui vous intéresse est dans ce tableau:
if (isset($params['q'])) {
var_dump($params['q']);
}
Donnera nous, dans cet exemple:
string 'test glop' (length=9)
Et le tour est joué ;-)
noter simplement que le Referer est envoyé par le client, ce qui signifie:
- il peut être forgé, et peut contenir quoi que ce soit - y compris mauvaises choses (attention aux injections SQL et XSS!)
- c'est optionnel: le navigateur n'est pas obligé de l'envoyer.
Questions connexes
- 1. comment obtenir des informations de fichier/répertoires de recherche
- 2. Obtenir des moteurs de recherche à lier à des sous-pages au lieu de l'index
- 3. API produits Amazon - Recherche aperçu de base et des informations
- 4. vb.net obtenir des informations de sécurité de dossier
- 5. Obtenir des informations de retraçage exceptions IronPython
- 6. Où les moteurs de recherche commencent-ils à explorer?
- 7. Optimisation de Django: obtenir des informations de modèle en masse ..?
- 8. Rendre la page de recherche joomla conviviale pour les moteurs de recherche
- 9. Comment obtenir des informations de chapitre PDF avec CGPDFDocumentGetCatalog?
- 10. Comment obtenir des informations de VS_VERSION_INFO dans le contrôle ActiveX
- 11. comment obtenir des informations de connexion par openId?
- 12. Utilisation excessive de DIVs imbriquées. Mauvaise pratique ou mauvaise pour l'indexation des moteurs de recherche?
- 13. Obtenir des informations sur la plate-forme de l'iphone
- 14. ne les moteurs de recherche lire <!-- --> et est-il detremental aux résultats de recherche
- 15. Comment faire une recherche sur wikipedia et obtenir des entrées ou des informations en C++?
- 16. Comment obtenir des informations de décalage de caractères à partir d'un document PDF?
- 17. Requête de recherche avec Subsonic
- 18. Comment dire aux moteurs de recherche que 2 noms de domaine sont le même site?
- 19. Comment arrêter l'indexation d'une page de maintenance par les moteurs de recherche?
- 20. Obtenir des informations sur Wikipedia - comment obtenir un formulaire HTML?
- 21. mySQL obtenir des informations à partir de plusieurs tables dans une requête
- 22. Obtenir des informations post En dehors de la boucle Wordpress
- 23. Requête de recherche SQL 'simple'
- 24. Comment obtenir des informations sur les performances de la base de données SQL Server?
- 25. Accélération d'une requête SQL avec des informations de données génériques
- 26. Optimisation de la requête de recherche
- 27. Obtenir des informations d'identification SharePoint à partir de SaveFileDialog
- 28. Obtenir des informations d'identification de SharpSvn en C#
- 29. Silverlight - Obtenir les informations de domaine
- 30. Les moteurs de recherche tiennent-ils compte des rôles ARIA (http://www.w3.org/TR/wai-aria/)?
+1: Excellente réponse. Il vaut également la peine de souligner que oui, il est vraiment orthographié "referer" dans le contexte de HTTP. 8-) – RichieHindle
Merci! Ergh, en lisant votre commentaire, j'ai d'abord pensé "oh, est-ce que je l'ai mal orthographié?" ^^ Une chose plus drôle dans notre travail quotidien ^^ –
J'ai peur de ne pas suivre. Si je dis: $ query = $ _SERVER ['HTTP_REFERER']; puis $ query = l'adresse complète de google. Si je dis: $ query = parse_url ($ _ SERVER ['HTTP_REFERER'], PHP_URL_QUERY); var_dump ($ query); La requête $ n'a alors aucune valeur. Ai-je besoin d'inclure les var_dumps ou sont-ce juste pour mes études? –