Не получается строка запроса от $ _SERVER ['HTTP_REFERER'] - PullRequest
0 голосов
/ 24 апреля 2019

Я пытаюсь получить строку запроса от поисковых систем, таких как Google, Bing и Yahoo, чтобы сохранить их в моей базе данных и показать ключевое слово, используемое для получения моего сайта в поисковой системе на этой конкретной странице.

Я проверил все глобальные переменные PHP ($ _SERVER, $ _REQUEST, $ _POST, $ _GET, $ _GLOBAL и $ _COOKIE), но не смог найти необходимые данные.

Я хочу "Билл + Хикс + Спорт + товары + оптом" в "https://www.bing.com/search?q=bill+hicks+sporting+goods+wholesale&qs=n&form=QBLH&sp=-1&pq=bill+hicks+sporting+goods+wholesale&sc=2-35&sk=&cvid=9E5D9E7C0B5B4740A42B5758CCE510D0"

Раньше работал следующий код, но теперь все поисковые системы перестали отправлять строку запроса в HTTP_REFERER.

function get_search_query() {
    $ref_keywords = '';
    // Get the referrer to the page
    $referrer = $_SERVER['HTTP_REFERER'];
    if (!empty($referrer))
    {
        //Parse the referrer URL
        $parts_url = parse_url($referrer);
        // Check if a query string exists
        $query = isset($parts_url['query']) ? $parts_url['query'] : '';
        if($query)
        {
            // Convert the query string into array
            parse_str($query, $parts_query);
            // Check if the parameters 'q' or 'query' exists, and if exists that is our search query terms.
            $ref_keywords = isset($parts_query['q']) ? $parts_query['q'] : (isset($parts_query['query']) ? $parts_query['query'] : '' );
        }
    }
    return $ref_keywords;
}

код от https://www.virendrachandak.com/techtalk/get-search-query-string-from-search-engines-using-php/

...