PHP自定义函数获取搜索引擎来源关键字的方法

学习笔记 2020/12/16 PHP

本文实例讲述了PHP自定义函数获取搜索引擎来源关键字的方法。分享给大家供大家参考,具体如下:

获取搜索引擎来源关键字的函数:

function getKeywords() {
  // 搜索引擎关键字映射
  static $host_keyword_map = array(
      \'www.baidu.com\' => \'wd\',
      \'v.baidu.com\' => \'word\',
      \'image.baidu.com\' => \'word\',
      \'news.baidu.com\' => \'word\',
      \'www.so.com\' => \'q\',
      \'video.so.com\' => \'q\',
      \'image.so.com\' => \'q\',
      \'news.so.com\' => \'q\',
      \'www.sogou.com\' => \'query\',
      \'pic.sogou.com\' => \'query\',
      \'v.sogou.com\' => \'query\',
  );
  // 检查来源是否搜索引擎
  if (!isset($_SERVER[\'HTTP_REFERER\'])) {
    return \'\';
  }
  $urls = parse_url($_SERVER[\'HTTP_REFERER\']);
  if (!array_key_exists($urls[\'host\'], $host_keyword_map)) {
    return \'\';
  }
  $key = $host_keyword_map[$urls[\'host\']];
  // 检查关键字参数是否存在
  if (!isset($urls[\'query\'])) {
    return \'\';
  }
  $params = array();
  parse_str($urls[\'query\'], $params);
  if (!isset($params[$key])) {
    return \'\';
  }
  $keywords = $params[$key];
  // 检查编码
  $encoding = mb_detect_encoding($keywords, \'utf-8,gbk\');
  if ($encoding != \'utf-8\') {
    $keywords = iconv($encoding, \'utf-8\', $keywords);
  }
  return $keywords;
}

函数测试:


本文地址:https://www.stayed.cn/item/305

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。