Advertisement
Guest User

Untitled

a guest
Jan 19th, 2017
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.51 KB | None | 0 0
  1. public static function detectSearchEngine($referrerURL){
  2.  
  3. $search_engines = Array (
  4. Array("name"=>"Mail", "pattern"=>"go.mail.ru/search_images", "param"=>"q="),
  5. Array("name"=>"Mail", "pattern"=>"go.mail.ru", "param"=>"q="),
  6. Array("name"=>"Google", "pattern"=>"images.google.", "param"=>"q="),
  7. Array("name"=>"Google", "pattern"=>"google.", "param"=>"q="),
  8. Array("name"=>"Google", "pattern"=>"google.", "param"=>"as_q="),
  9. Array("name"=>"Yahoo", "pattern"=>"search.yahoo.com", "param"=>"p="),
  10. Array("name"=>"Yandex", "pattern"=>"images.yandex.ru/", "param"=>"text="),
  11. Array("name"=>"Yandex", "pattern"=>"m.yandex.ru/search", "param"=>"query="),
  12. Array("name"=>"Yandex", "pattern"=>"yandex.ru/msearch", "param"=>"text="),
  13. Array("name"=>"Yandex", "pattern"=>"hghltd.yandex.net", "param"=>"text="),
  14. Array("name"=>"Yandex", "pattern"=>"yandex.ru", "param"=>"text="),
  15. Array("name"=>"Yandex", "pattern"=>"ya.ru", "param"=>"key="),
  16. Array("name"=>"Bing", "pattern"=>"bing.com", "param"=>"q="),
  17. );
  18.  
  19. if ( isset ( $referrerURL ) && strlen ( $referrerURL ) > 3 ){
  20. $tmp = parse_url ( urldecode ( trim ( $referrerURL ) ) );
  21. if ( is_array ( $tmp ) && isset ( $tmp["host"] ) ) {
  22. if (!isset ($tmp["path"])) {
  23. $tmp["path"] = "";
  24. }
  25. $reff = str_replace("www.", "", $tmp["host"]) . $tmp["path"];
  26.  
  27. if ( isset ( $tmp["query"] ) && strlen ( $tmp["query"] ) > 2 ){
  28. $params = explode ( "&", $tmp["query"] );
  29. foreach ( $search_engines as $engine ) { // Поиск по всем сигнатурам
  30. if (strpos($reff, $engine['pattern']) !== FALSE) {
  31. $i = strlen ( $engine['param'] );
  32. foreach ( $params as $param )
  33. {
  34. if ( !$param ){
  35. continue;
  36. }
  37. if ( substr ( $param, 0, $i ) == $engine['param'] ){
  38. return $engine['name'];
  39. }
  40. }
  41. }
  42. }
  43. }
  44.  
  45. }
  46. }else{
  47. return false;
  48. }
  49.  
  50. return false;
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement