1

以前に使用$_SERVER['HTTP_REFERER']したことがなく、Google 検索結果のリンクをクリックしてユーザーが自分のサイトにアクセスしたことを確認する方法がわかりません。ユーザーは、google.com、google.co.uk などからアクセスできます。

大変助かりました。

4

2 に答える 2

9
$url = $_SERVER['HTTP_REFERER'];
$query = parse_url ($url, PHP_URL_QUERY);
$host = parse_url ($url, PHP_URL_HOST);
if (strstr ($query, 'q=') && strstr ($host, 'google.')) {
    // user came from google
else {
    // user didnt come from google
}
于 2012-05-16T06:26:34.937 に答える
1

これは、リファラーがページリクエストから存在しない場合に警告を出さない私のソリューションです。

public function doesUserCameFromCrawler() {
    $crawlerList=array("google.","yandex.","bing.");

    if (isset($_SERVER['HTTP_REFERER'])) {
        $referringPage = parse_url( $_SERVER['HTTP_REFERER'] );
        if ( isset( $referringPage['host'] )) {
            $referringHost = $referringPage['host'];
            foreach ($crawlerList as $crawler) {
                if (strpos(strtolower($referringHost),$crawler) !== FALSE) {
                    return TRUE;
                }
            }
        }
    }
    return FALSE;
}
于 2012-08-20T07:48:03.787 に答える