服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服务器之家 - 编程语言 - PHP教程 - php中获取关键词及所属来源搜索引擎名称的代码

php中获取关键词及所属来源搜索引擎名称的代码

2019-11-18 13:58php教程网 PHP教程

有时候我们需要知道用户通过哪个搜索引擎,通过拿个关键词访问我们页面,当然js也可以实现,但这里介绍下php的实现代码。

代码如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 
<title>greengnn codes</title> 
</head> 
<body> 
<form action="index.php" method="get"> 
<input name="url" size="80"><button type="submit">GO</button> 
</form> 

<?php 
//获取关键词及所属来源搜索引擎名称 

$search_url = isset($_GET['url'])?$_GET['url']:''; //代表传入的地址 
/*$search_url = urldecode($search_url); 
print_r($search_url); 
*/ 

$config = array( 
"s1"=>array( 
"domain" => "google.com", 
"kw" => "q", 
"charset" => "utf-8" 
), 
"s3"=>array( 
"domain" => "google.cn", 
"kw" => "q", 
"charset" => "utf-8" 
), 
"s4"=>array( 
"domain" => "baidu.com", 
"kw" => "wd", 
"charset" => "gbk" 
), 
"s5"=>array( 
"domain" => "soso.com", 
"kw" => "q", 
"charset" => "utf-8" 
), 
"s6"=>array( 
"domain" => "yahoo.com", 
"kw" => "q", 
"charset" => "utf-8" 
), 
"s7"=>array( 
"domain" => "bing.com", 
"kw" => "q", 
"charset" => "utf-8" 
), 
"s8"=>array( 
"domain" => "sogou.com", 
"kw" => "query", 
"charset" => "gbk" 
), 
"s9"=>array( 
"domain" => "youdao.com", 
"kw" => "q", 
"charset" => "utf-8" 
), 
); 

//函数作用:从url中提取关键词。参数说明:url及关键词前的字符。 
function get_keyword($url,$kw_start) 


$start = stripos($url,$kw_start); 
$url = substr($url,$start+strlen($kw_start)); 
$start = stripos($url,'&'); 
if ($start>0) 

$start=stripos($url,'&'); 
$s_s_keyword=substr($url,0,$start); 

else 

$s_s_keyword=substr($url,0); 

return $s_s_keyword; 


$arr_key = array(); 
foreach($config as $item){ 
$sh = preg_match("/\b{$item['domain']}\b/",$search_url); 
if($sh){ 
$query = $item['kw']."="; 

$s_s_keyword = get_keyword($search_url,$query); 
$F_Skey=urldecode($s_s_keyword); 
if($item['charset']=="utf-8"){ 
$F_Skey=iconv( "UTF-8","gb2312//IGNORE",$F_Skey); //最终提取的关键词 

$keys = explode(" ",$F_Skey); 
$arr_key[$item['domain']] = $keys; 


echo "<pre>"; 
print_r($arr_key); 
?> 

延伸 · 阅读

精彩推荐