>  기사  >  백엔드 개발  >  검색 엔진 키워드 소스를 가져오는 PHP 기능(Baidu 및 Google과 같은 검색 엔진 지원)

검색 엔진 키워드 소스를 가져오는 PHP 기능(Baidu 및 Google과 같은 검색 엔진 지원)

WBOY
WBOY원래의
2016-07-25 08:57:231052검색
  1. //검색 엔진에서 인바운드 키워드 가져오기

  2. //by bbs.it-home .org
  3. 함수 get_keyword($url,$kw_start)
  4. {
  5. $start=stripos($url,$kw_start)
  6. $url=substr($url,$start strlen($kw_start )) ;
  7. $start=stripos($url,'&');
  8. if ($start>0)
  9. {
  10. $start=stripos($url,'&'); $s_s_keyword=substr($url,0,$start);
  11. }
  12. else
  13. {
  14. $s_s_keyword=substr($url,0);
  15. }
  16. return $s_s_keyword ;
  17. }

  18. $url=isset($_SERVER['HTTP_REFERER'])?$_SERVER['HTTP_REFERER']:'';//인바운드 URL을 가져옵니다.

  19. $search_1="google.com"; //q= utf8
  20. $search_2="baidu.com"; //wd= gbk
  21. $search_3="yahoo.cn" //q= utf8
  22. $search_4="sogou.com"; //쿼리= gbk
  23. $search_5="soso.com"; //w= gbk
  24. $search_6="bing.com" //q = utf8
  25. $search_7="youdao.com"; //q= utf8

  26. $google=preg_match("/b{$search_1}b/",$url); //인바운드 판정을 위한 매칭상황을 기록한다.

  27. $baidu=preg_match("/b{$search_2}b/",$url)
  28. $yahoo=preg_match("/b{$search_3}b/",$url)
  29. $ sogou=preg_match("/b{$search_4}b/",$url);
  30. $soso=preg_match("/b{$search_5}b/",$url)
  31. $bing=preg_match( "/b{$search_6}b/",$url);
  32. $youdao=preg_match("/b{$search_7}b/",$url)
  33. $s_s_keyword=""; $bul=$_SERVER['HTTP_REFERER'];
  34. //매개변수 없이 도메인 이름 가져오기
  35. preg_match('@^(?:http://)?([^/] )@i',$ bul, $matches);
  36. $burl=$matches[1];
  37. //도메인 이름 설정
  38. $curl="bbs.it-home.org"
  39. if($burl !=$ 컬){
  40. if ($google)
  41. {//Google에서
  42. $s_s_keyword=get_keyword($url,'q=');//키워드 앞의 문자는 "q= ".
  43. $s_s_keyword=urldecode($s_s_keyword);
  44. $urlname="Google:";
  45. $_SESSION["urlname"]=$urlname; ;
  46. //$s_s_keyword=iconv("GBK","UTF-8",$s_s_keyword);//엔진은 gbk입니다
  47. }
  48. else if($baidu)
  49. {// Baidu에서
  50. $s_s_keyword=get_keyword($url,'wd=');//키워드 앞의 문자는 "wd="입니다.
  51. $s_s_keyword=urldecode($s_s_keyword);
  52. $s_s_keyword=iconv("GBK","UTF-8",$s_s_keyword);//엔진은 gbk입니다.
  53. $urlname="Baidu:" ;
  54. $_SESSION["urlname"]=$urlname;
  55. $_SESSION["s_s_keyword"]=$s_s_keyword
  56. }
  57. else if($yahoo)
  58. {//출처:
  59. $s_s_keyword=get_keyword($url,'q=');//키워드 앞의 문자는 "q="입니다.
  60. $s_s_keyword=urldecode($s_s_keyword);
  61. //$s_s_keyword=iconv("GBK","UTF-8",$s_s_keyword);//엔진은 gbk
  62. $urlname="Yahoo : ";
  63. $_SESSION["urlname"]=$urlname;
  64. $_SESSION["s_s_keyword"]=$s_s_keyword;
  65. }
  66. else if($sogou)
  67. {// from Sogou
  68. $s_s_keyword=get_keyword($url,'query=');//키워드 앞의 문자는 "query="입니다.
  69. $s_s_keyword=urldecode($s_s_keyword);
  70. $s_s_keyword=iconv("GBK","UTF-8",$s_s_keyword);//엔진은 gbk입니다.
  71. $urlname="Sogou:" ;
  72. $_SESSION["urlname"]=$urlname;
  73. $_SESSION["s_s_keyword"]=$s_s_keyword
  74. }
  75. else if($soso)
  76. {//from
  77. $s_s_keyword=get_keyword($url,'w=');//키워드 앞의 문자는 "w="입니다.
  78. $s_s_keyword=urldecode($s_s_keyword);
  79. $s_s_keyword=iconv("GBK","UTF-8",$s_s_keyword);//엔진은 gbk입니다.
  80. $urlname="Soso:" ;
  81. $_SESSION["urlname"]=$urlname;
  82. $_SESSION["s_s_keyword"]=$s_s_keyword
  83. }
  84. else if($bing)
  85. {//bi
  86. $s_s_keyword=get_keyword($url,'q=');//키워드 앞의 문자는 "q="입니다.
  87. $s_s_keyword=urldecode($s_s_keyword);
  88. //$s_s_keyword=iconv("GBK","UTF-8",$s_s_keyword);//엔진은 gbk
  89. $urlname="Bing :";
  90. $_SESSION["urlname"]=$urlname;
  91. $_SESSION["s_s_keyword"]=$s_s_keyword;
  92. }
  93. else if($youdao)
  94. {// Youdao에서
  95. $s_s_keyword=get_keyword($url,'q=');//키워드 앞의 문자는 "q="입니다.
  96. $s_s_keyword=urldecode($s_s_keyword);
  97. //$s_s_keyword=iconv("GBK","UTF-8",$s_s_keyword);//엔진은 gbk
  98. $urlname="Youdao :";
  99. $_SESSION["urlname"]=$urlname;
  100. $_SESSION["s_s_keyword"]=$s_s_keyword;
  101. }
  102. else{
  103. $urlname=$burl;
  104. $s_s_keyword="";
  105. $_SESSION["urlname"]=$urlname;
  106. $_SESSION["s_s_keyword"]=$s_s_keyword;
  107. $s_urlname=$urlname; 🎜>$s_urlkey=$s_s_keyword;
  108. }
  109. else{
  110. $s_urlname=$_SESSION["urlname"]
  111. $s_urlkey=$_SESSION["s_s_keyword"]
  112. ?>
  113. 코드 복사

참고: 처리할 때 인코딩 문제를 처리해야 한다는 점을 기억하세요. 서로 다른 검색 엔진이 결과를 반환하므로 일부는 GBK일 수 있고 일부는 UTF-8 형식 콘텐츠일 수 있습니다.

기능 2, 이것도 좋은데 한번 해보세요. 코드는 다음과 같습니다:

  1. //검색엔진의 입력 키워드 가져오기
  2. $_SERVER['HTTP_REFERER']='http:/ / www.baidu.com/s?wd=http://bbs.it-home.org';
  3. echo save_www_iiwnet_com_keyword('http://www.baidu.com/s?wd=http://bbs .it-home.org','http://www.baidu.com/s?wd=http://bbs.it-home.org')
  4. function save_www_iiwnet_com_keyword($domain,$path){
  5. if(strpos($domain, 'google.com.tw')!==false && preg_match('/q=([^&]*)/i',$path,$regs)){
  6. $searchengine = 'GOOGLE TAIWAN';
  7. $keywords = urldecode($regs[1]) // Google 대만
  8. }
  9. if(strpos($domain,'google.cn')!= = false && preg_match('/q=([^&]*)/i',$path,$regs)){
  10. $searchengine = 'GOOGLE CHINA'
  11. $keywords = urldecode($regs[ 1 ]); // 구글 중국
  12. }
  13. if(strpos($domain,'google.com')!==false && preg_match('/q=([^&]*)/i', $ path,$regs)){
  14. $searchengine = 'GOOGLE';
  15. $keywords = urldecode($regs[1]) // 구글
  16. }elseif(strpos($domain,'baidu. ' )!==false && preg_match('/wd=([^&]*)/i',$path,$regs)){
  17. $searchengine = 'BAIDU'
  18. $keywords = urldecode( $ regs[1]); // 바이두
  19. }elseif(strpos($domain,'baidu.')!==false && preg_match('/word=([^&]*)/i',$path , $regs)){
  20. $searchengine = 'BAIDU';
  21. $keywords = urldecode($regs[1]) // 바이두
  22. }elseif(strpos($domain,'114.vnet. cn ')!== false && preg_match('/kw=([^&]*)/i',$path,$regs)){
  23. $searchengine = 'CT114'
  24. $keywords = urldecode ( $regs[1]); // ct114
  25. }elseif(strpos($domain,'iask.com')!==false && preg_match('/k=([^&]*)/i', $ path,$regs)){
  26. $searchengine = 'IASK';
  27. $keywords = urldecode($regs[1]) // iask
  28. }elseif(strpos($domain,'soso. com ')!==false && preg_match('/w=([^&]*)/i',$path,$regs)){
  29. $searchengine = 'SOSO'
  30. $keywords = urldecode ( $regs[1]); // soso
  31. }elseif(strpos($domain, 'sogou.com')!==false && preg_match('/query=([^&]*)/i', $ path,$regs)){
  32. $searchengine = 'SOGOU';
  33. $keywords = urldecode($regs[1]) // sogou
  34. }elseif(strpos($domain,'so. 163 .com')!==false && preg_match('/q=([^&]*)/i',$path,$regs)){
  35. $searchengine = 'NETEASE'
  36. $keywords = urldecode($regs[1]); // netease
  37. }elseif(strpos($domain,'yodao.com')!== false && preg_match('/q=([^&]*)/i ' ,$path,$regs)){
  38. $searchengine = 'YODAO';
  39. $keywords = urldecode($regs[1]) // 요다오
  40. }elseif(strpos($domain,' zhongsou .com')!==false && preg_match('/word=([^&]*)/i',$path,$regs)){
  41. $searchengine = 'ZHONGSOU'
  42. $keywords = urldecode($regs[1]); // zhongsou
  43. }elseif(strpos($domain,'search.tom.com')!==false && preg_match('/w=([^&]*) / i',$path,$regs)){
  44. $searchengine = 'TOM';
  45. $keywords = urldecode($regs[1]) // 톰
  46. }elseif(strpos($domain) , 'live.com')!==false && preg_match('/q=([^&]*)/i',$path,$regs)){
  47. $searchengine = 'MSLIVE'
  48. $ 키워드 = urldecode($regs[1]); // MSLIVE
  49. }elseif(strpos($domain, 'tw.search.yahoo.com')!==false && preg_match('/p=([^ & ]*)/i',$path,$regs)){
  50. $searchengine = 'YAHOO TAIWAN'
  51. $keywords = urldecode($regs[1]) // yahoo taiwan
  52. } elseif (strpos($domain,'cn.yahoo.')!==false && preg_match('/p=([^&]*)/i',$path,$regs)){
  53. $searchengine = ' YAHOO CHINA'
  54. $keywords = urldecode($regs[1]); // 야후 중국
  55. }elseif(strpos($domain,'yahoo.')!==false && preg_match('/p = ([^&]*)/i',$path,$regs)){
  56. $searchengine = 'YAHOO'
  57. $keywords = urldecode($regs[1]); > }elseif(strpos($domain,'msn.com.tw')!==false && preg_match('/q=([^&]*)/i',$path,$regs)){
  58. $ searchengine = 'MSN TAIWAN';
  59. $keywords = urldecode($regs[1]); // msn taiwan
  60. }elseif(strpos($domain,'msn.com.cn')!==false && preg_match('/q=([^&]*)/i',$path,$regs)){
  61. $searchengine = 'MSN 중국'
  62. $keywords = urldecode($regs[1] ) ; // 중국 MSN
  63. }elseif(strpos($domain,'msn.com')!==false && preg_match('/q=([^&]*)/i',$path,$regs ) ){
  64. $searchengine = 'MSN';
  65. $keywords = urldecode($regs[1]); // msn
  66. }
  67. return $keywords; > ;
  68. 코드 복사
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.