Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: yandex URL parser
 
 автор: sidPR   (16.02.2010 в 13:08)   письмо автору
 
 

Подскажите пожалуйста может есть у кого функция которая на вход получает URL а на выход поисковую фразу человека.

Если есть у кого функция работающая с большинством поисковиков буду очень признателен!

  Ответить  
 
 автор: Саня   (16.02.2010 в 19:23)   письмо автору
 
   для: sidPR   (16.02.2010 в 13:08)
 

В power counter'e есть код для выдёргивания запросов из некоторых поисковиков:
<?
  
if(!empty($reff) && $search!="none" && $search != "own_site")
  {
    switch(
$search)
    {
      case 
'yandex':
      {
        
preg_match("|text=([^&]+)|is"$reff."&"$out);
        if(
strpos($reff,"yandpage")!=null)
          
$quer convert_cyr_string(urldecode($out[1]),"k","w");
        else
          
$quer=utf8_win($out[1]);
        break;
      }
      case 
'rambler':
      {
        
preg_match("|words=([^&]+)|is"$reff."&"$out);
        
$quer $out[1];
        break;
      }
      case 
'mail':
      {
        
preg_match("|q=([^&]+)|is"$reff."&"$out);
        
$quer $out[1];
        break;
      }
      case 
'google':
      {
        
preg_match("|[^a]q=([^&]+)|is"$reff."&"$out);
        
$quer utf8_win($out[1]); 
        break;
      }
      case 
'msn':
      {
        
preg_match("|q=([^&]+)|is"$reff."&"$out);
        
$quer utf8_win($out[1]);
        break;
      }
      case 
'aport':
      {
        
preg_match("|r=([^&]+)|is"$reff."&"$out);
        
$quer $out[1];
        break;
      }
    }

  Ответить  
 
 автор: sidPR   (18.02.2010 в 13:13)   письмо автору
 
   для: Саня   (16.02.2010 в 19:23)
 

Спасибо, а я нашел такую функцию


function detect_search_engine($url)
{
    $search_engines=Array(
       Array("name"=>"Mail", "pattern"=>"go.mail.ru/search_images", "param"=>"q", "charset"=>"w"),
       Array("name"=>"Mail", "pattern"=>"go.mail.ru", "param"=>"q", "charset"=>"w"),
       Array("name"=>"Google Images", "pattern"=>"images.google.", "param"=>"q", "charset"=>"u"),
       Array("name"=>"Google", "pattern"=>"google.", "param"=>"q", "charset"=>"u"),
       Array("name"=>"Google", "pattern"=>"google.", "param"=>"as_q", "charset"=>"u"),
       Array("name"=>"Live Search", "pattern"=>"search.live.com", "param"=>"q", "charset"=>"u"),
       Array("name"=>"Bing", "pattern"=>"bing.", "param"=>"q", "charset"=>"u"),
       Array("name"=>"RapidShare Search Engine", "pattern"=>"rapidshare-search-engine", "param"=>"s", "charset"=>"u"),
       Array("name"=>"Rambler", "pattern"=>"rambler.ru", "param"=>"query", "charset"=>"u"),
       Array("name"=>"Rambler", "pattern"=>"rambler.ru", "param"=>"words", "charset"=>"u"),
       Array("name"=>"Yahoo!", "pattern"=>"search.yahoo.com", "param"=>"p", "charset"=>"u"),
       Array("name"=>"Nigma", "pattern"=>"nigma.ru/index.php", "param"=>"s", "charset"=>"u"),
       Array("name"=>"Nigma", "pattern"=>"nigma.ru/index.php", "param"=>"q", "charset"=>"u"),
       Array("name"=>"MSN", "pattern"=>"search.msn.com/results", "param"=>"q", "charset"=>"u"),
       Array("name"=>"Ask", "pattern"=>"ask.com/web", "param"=>"q", "charset"=>"u"),
       Array("name"=>"QIP", "pattern"=>"search.qip.ru/search", "param"=>"query", "charset"=>"u"),
       Array("name"=>"RapidAll", "pattern"=>"rapidall.com/search.php", "param"=>"query", "charset"=>"u"),
       Array("name"=>"Yandex", "pattern"=>"images.yandex.ru/", "param"=>"text", "charset"=>"u"),
       Array("name"=>"Yandex", "pattern"=>"m.yandex.ru/search", "param"=>"query", "charset"=>"u"),
       Array("name"=>"Yandex", "pattern"=>"hghltd.yandex.net", "param"=>"text", "charset"=>"u"),
       Array("name"=>"Yandex", "pattern"=>"yandex.ru", "param"=>"text", "charset"=>"u")
    );
 
    $tmp = parse_url($url);
    $host = $tmp['host'];
    $query = $tmp['query'];
    parse_str($query, $query_arr);
 
    $res['engine'] = '-';
    $res['request'] = '-';
 
    foreach ($search_engines as $engine)
    {
        if (strpos($host,$engine['pattern']) !== false and isset($query_arr[$engine['param']]))
        {
            if($engine['name']!= "-")
                $res['engine'] = $engine['name'];
            else
                $res['engine'] = $host;
            $res['request'] = $query_arr[$engine['param']];
            break;
        }
    }
    if($res['request'] != "-")
     $result = iconv("UTF-8", "CP1251", $res['request'])." <b>[ ".$res['engine']." ]</b>";
     else 
     $result = $url;
    //$res['request'] = iconv("cp1251","utf-8",$res['request']);
    return $result;
}

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования