Полезные скрипты

Discussion in 'PHP' started by SMiX, 2 Nov 2006.

  1. phpdreamer

    phpdreamer Member

    Joined:
    26 Jul 2009
    Messages:
    551
    Likes Received:
    86
    Reputations:
    19
    выдает в браузер список прочеканых проксей с сайтов из списка
    PHP:
    <?php
    @set_time_limit(0);

    $filename 'sitesproxy.txt';

    $n 15//количество потоков при проверке проксей
    $regular '#[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}:[0-9]{2,5}#';
    $ban = array();
    $proxy = array();
    foreach (
    file($filename) as $url)
    {
        
    $url trim($url);
        
    $page curlPage($url);
        
    preg_match_all($regular$page$p);
        if (!
    count($p[0]))
            
    $ban[] = $url;
        else
            
    $proxy array_merge($proxy$p[0]);
    }
    $proxies __array_unique($proxy);
    $countProxy count($proxies);
    if (
    $countProxy <= $n)
    {
        
    chk($proxies);
    }
    else
    {
        
    $c floor($countProxy $n);
        for (
    $i 1$i <= $c$i++)
            
    chk(array_slice($proxies$n $i$n));
        
    chk(array_slice($proxies$n * ($c 1), $countProxy $n $c));
    }
    if (
    count($ban) == 1)
        echo 
    '<hr>Сайт не принес пользы: ' $ban[0];
    if (
    count($ban) > 1)
    {
        echo 
    '<hr>Сайты не приносят пользы:<br>';
        foreach (
    $ban as $sitename)
            echo 
    $sitename '<br>';
    }
    function 
    chk($proxies)
    {
        
    $mc curl_multi_init ();
        for (
    $thread_no 0$thread_no count($proxies); $thread_no++)
        {
            
    $c [$thread_no] = curl_init ();
            
    curl_setopt($c [$thread_no], CURLOPT_URL"http://google.com");
            
    curl_setopt($c [$thread_no], CURLOPT_HEADER0);
            
    curl_setopt($c [$thread_no], CURLOPT_RETURNTRANSFER1);
            
    curl_setopt($c [$thread_no], CURLOPT_CONNECTTIMEOUT5);
            
    curl_setopt($c [$thread_no], CURLOPT_TIMEOUT10);
            
    curl_setopt($c [$thread_no], CURLOPT_PROXYtrim($proxies [$thread_no]));
            
    curl_setopt($c [$thread_no], CURLOPT_PROXYTYPE0);
            
    curl_multi_add_handle($mc$c [$thread_no]);
        }
        do
        {
            while ((
    $execrun curl_multi_exec($mc$running)) == CURLM_CALL_MULTI_PERFORM)
                if (
    $execrun != CURLM_OK)
                    break;
            while (
    $done curl_multi_info_read($mc))
            {
                
    $info curl_getinfo($done ['handle']);
                if (
    $info ['http_code'] == 301)
                    echo 
    trim($proxies [array_search($done['handle'], $c)]) . "<br>\r\n";
                
    curl_multi_remove_handle($mc$done ['handle']);
            }
        } while (
    $running);
        
    curl_multi_close($mc);
    }
    function 
    curlPage($url//curl
    {
        if (!
    function_exists('curl_init'))
            die(
    'На сервере не установлено или отключено расширение cURL. Скрипт завершил работу.');
        
    $curl curl_init();
        
    curl_setopt($curlCURLOPT_URL$url);
        
    curl_setopt($curlCURLOPT_RETURNTRANSFERtrue);
        @
    curl_setopt($curlCURLOPT_FOLLOWLOCATIONtrue);
        
    curl_setopt($curlCURLOPT_HTTPHEADER, array(
            
    'Accept-Language: ru,en-us;q=0.7,en;q=0.3',
            
    'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8,application/json',
            
    'User-Agent: Mozilla/5.0 (X11; U; Gentoo-Linux; ru; rv:1.9.2.3)socks-php-bot Gecko/20100404  Firefox/3.7.0 GTB7.0',
            
    'Accept-Encoding: deflate',
            
    'Accept-Charset: UTF-8,*'));
        
    curl_setopt($curlCURLOPT_CONNECTTIMEOUT300);
        return 
    curl_exec($curl);
    }
    function 
    __array_unique($array)
    {
        
    $r = array();
        foreach (
    $array as $key => $value)
        {
            if (!
    in_array($value$r))
                
    $r[] = $value;
        }
        return 
    $r;
    }
     
    3 people like this.
  2. Zombi ****

    Zombi **** Elder - Старейшина

    Joined:
    4 Apr 2009
    Messages:
    461
    Likes Received:
    185
    Reputations:
    17
    есть ли у кого то скрипт проверки баланса на sape? поделитесь в личку с меня ++++
     
  3. energ77

    energ77 New Member

    Joined:
    17 Jul 2010
    Messages:
    71
    Likes Received:
    4
    Reputations:
    0
    Название скрипта: Скрипт возращающий запрос по которому был переход на ваш сайта со всех известных поисковиков, поисковик и страницу выдачи на которой есть ваш запрос. (подерживаются поисковики yandex, google, rambler, yahoo.com, go.mail.ru, aport.ru, nigma.ru, search.com, live.com, msn.com, aol.com, нужны будут другие пишите)

    Описание скрипта: Вернет через символ | следующие параметры: (например так google|термины бальных танцев|21|20)
    1) Поисковая система с которой пришли на ваш сайт
    2) Запрос по которому пришли на ваш сайт
    3) Страница выдачи (в зависимости от поисковика либо порядковый номер первого результата на странице, т.е. если выдается по 10 результатов на странице, то 41 означает 4 страницу выдачи).
    4) Кол-во результатов на странице (если значение по умолчание не менялось будет пустым)

    Этот запрос очень удобно использовать для:
    а) ведения статистики
    б) выдачи полезной информации пользователю (например, при определенном запросе перемещать на нужную страницы или выводить подсказку)
    в) показывать в поисковой системе сайта запрос пользователя
    u) и т.д.

    Вызов скрипта: без параметров, например так echo getKeyWords();

    Скрипт:

    PHP:
    # Возвращает запросы со всех поисковиков 
    function getKeyWords(){ 
      
    $q $_SERVER['HTTP_REFERER']; 
      if(
    strlen($q)>0){ 
        if(
    strpos($q,'yandex')>0
          return 
    getKeyWord($q,'yandex.ru','text','p','numdoc'); 
        else if(
    strpos($q,'google')>0
          return 
    getKeyWord($q,'google','q','start','num'); 
        else if(
    strpos($q,'rambler.ru')>0
          return 
    getKeyWord($q,'rambler.ru','query','page',''); 
        else if(
    strpos($q,'yahoo.com')>0
          return 
    getKeyWord($q,'yahoo.com','p','b','n'); 
        else if(
    strpos($q,'go.mail.ru')>0
          return 
    getKeyWord($q,'go.mail.ru','q','sf',''); 
        else if(
    strpos($q,'aport.ru')>0
          return 
    getKeyWord($q,'aport.ru','r','p',''); 
        else if(
    strpos($q,'nigma.ru')>0
          return 
    getKeyWord($q,'nigma.ru','s','startpos',''); 
        else if(
    strpos($q,'search.com')>0
          return 
    getKeyWord($q,'search.com','q','nav',''); 
        else if(
    strpos($q,'live.com')>0
          return 
    getKeyWord($q,'live.com','q','first',''); 
        else if(
    strpos($q,'search.msn.com')>0
          return 
    getKeyWord($q,'search.msn.com','q','first',''); 
        else if(
    strpos($q,'search.aol.com')>0
          return 
    getKeyWord($q,'search.aol.com','query','page',''); 
        else 
          return 
    ''
      } 


    # Возвращает запрос 
    function getKeyWord($q,$find,$word,$page,$num){ 
           
    $tmp getParams($q,$word); 
           if(
    strlen($tmp)>0){ 
               return 
    $find.'|'.$tmp.'|'.getParams($q,$page).'|'.getParams($q,$num); 
           } 
           return 
    ''


    # Возвращает параметр из HTTP_REFERER 
    function getParams($q,$prm){ 
           if(
    strlen($prm) == 0) return ''
           
    $i strpos($q,'&'.trim($prm).'='); 
           if(
    $i == 0$i strpos($q,'?'.trim($prm).'=');        
           if(
    $i 0){ 
             
    $tmp substr($q,$i+strlen($prm)+2); 
             if(
    strpos($tmp,'&')>0$tmp substr($tmp,0,strpos($tmp,'&')); 
             
    $tmp getStringUtf(urldecode($tmp));        
             return 
    $tmp;          
           } 
           return 
    ''


     
    #1063 energ77, 9 May 2011
    Last edited: 9 May 2011
    1 person likes this.
  4. energ77

    energ77 New Member

    Joined:
    17 Jul 2010
    Messages:
    71
    Likes Received:
    4
    Reputations:
    0
    скрипт используется с функциями преобразование из Utf 8 в ANSI русских символов

    PHP:

    # Преобразование из Utf 8 в ANSI 
    function getStringUtf($prm){ 
       
    $tmp "";$j=0;  
       while(
    $j<strlen($prm)) { 
           
    $tmp1 getTextUtf(ord($prm[$j]),ord($prm[$j+1]),$j); 
           
    $tmp  $tmp $tmp1
           
    $j++; 
       } 
       return 
    $tmp


    function 
    getTextUtf($tmp,$tmp1,&$i){ 
    if(
    $tmp==208 || $tmp==209){ 
       if(
    $tmp==209$t 64
       
    $i $i 1
       return 
    chr($tmp1 144+ord('А')+$t); 
    } else { 
       return 
    chr($tmp);    



     
  5. ta-kyn

    ta-kyn Member

    Joined:
    7 May 2009
    Messages:
    41
    Likes Received:
    8
    Reputations:
    2
    admf-0.3.pl

    Скриптик для подбора url админки ресурса. С ним: admin.txt – пути для перебора (лист честно выдернут из Admin Finder); proxy.txt – файл с прокси (ip:port), если есть желание использовать (флаг: –proxy). Результат записывает/дописывает в лог. Архив: [admf.pl + admin.txt]

    Code:
    #!usr/bin/perl
     
    #                      _
    #  _ __ ___  ___ _____| |__            _ __ _   _
    # | '__| _ \|  _'  _  \  _ \          | '__| | | |
    # | | | (_) \ | | | | | (_) )         | |  | '_| |
    # |_|  \___._\| |_| |_|____/.DATAPUNK.|_|   \___._\
    #
    # _ _ _ _ _ _ _ _ _ _ _ _ admf.pl ver 0.3 by ta-kyn
    # _ _ _ _ _ _ _ _ _ _admin.txt file by Admin Finder
     
    use LWP::UserAgent;
    use Getopt::Long;
     
    our $targeturl="";
    our $proxy="";
    our $adminfile="";
     
    $options = GetOptions ('targeturl=s'=> \$targeturl, 'proxy'=> \$proxy);
    # Если targeturl не введён – вызываем функцию help()
    if (!$targeturl) {
       &help();
    } else {
    # А если введен, проверяем что нам там навводили =)
    $pattern = qr/^(http\:\/\/)+([a-z0-9\-]+\.)+([a-z]{2,6})$/i;
      if ($targeturl =~ m/$pattern/) {
        $adminfile = "admin.txt";
        if (-s $adminfile) {
          print "\n";
          print "admin.txt found. Size\:", -s $adminfile, "b\n";
          #print "\n";
          &go();
          } else {
          print "\n";
          print "ERROR! admin.txt NOT FOUND!";
          print "\n";
          exit;
        }
      } else {
       print "\n";
       print "ERROR! URL not correct\n";
       &help();
       print "\n";
       exit;
      }
    }
     
    sub go() {
     
    my @list;
    my $col = 0;
     
    open(ADMINLIST, '<admin.txt') or die("ERROR open file admin.txt $!");
    flock(ADMINLIST, 2) or die("ERROR! lock file admin.txt $!");
    @list=<ADMINLIST>;
    chomp (@list);
    flock(ADMINLIST, 8) or die("ERROR! unlock file admin.txt $!");
    close(ADMINLIST);
     
    my $spider = LWP::UserAgent->new();
    $spider->agent(&f_agent());
     
    print "Start!\n";
     
      if ($proxy) {
      $proxurl = &proxy();
      $spider->proxy(['http']=>"http://".$proxurl."/");
      print "Using proxy " . $proxurl ."\n";
      }
     
    my $request = HTTP::Request->new(GET => $targeturl);
    my $result = $spider->request($request);
     
      if ($result->code() == "500") {
      print "Can't connect to ". $targeturl ."\n";
      exit;
      } else {
     
        for($i=0;$i<@list;$i++) {
        my $request = HTTP::Request->new(GET => $targeturl."\/".$list[$i]."\n");
        my $result = $spider->request($request);
     
        print $targeturl."\/".$list[$i]."\n";
        print $result->status_line()."\n";
        print "\n";
     
          if ($result->code() != "404") {
          $col++;
          open(LOGLIST, '>>admf-log.txt') or die("ERROR open file admf-log.txt $!");
          flock(LOGLIST, 2) or die("ERROR! lock file admf-log.txt $!");
          print LOGLIST "]--------------------->$targeturl\n";
          print LOGLIST "URL: $targeturl/$list[$i]\n";
          print LOGLIST $result->status_line()."\n";
          print LOGLIST "\n";
          flock(LOGLIST, 8) or die("ERROR! unlock file admf-log.txt $!");
          close(LOGLIST);
          }
        }
     
      if ($col != 0) {
      print "FOUND! Result - file admf-log.txt\n";
      } else {
      print "Sorry, not found =(\n"
      }
     }
     
    undef $spider;
    undef @list;
    }
     
    sub proxy() {
     
      my $proxycheck = LWP::UserAgent->new();
      $proxycheck->agent(&f_agent());
     
      open(PROXYLIST, 'proxy.txt') or die ("ERROR open file proxy.txt $!");
      flock(PROXYLIST, 2) or die("ERROR! lock file admin.txt $!");
      @proxylist=<PROXYLIST>;
      chomp (@proxylist);
      flock(PROXYLIST, 8) or die("ERROR! unlock file admin.txt $!");
      close(PROXYLIST);
     
        if (scalar @proxylist == 0) { print "Proxy not found\n";
                                      exit; }
     
        for ($j=0;$j<@proxylist;$j++) {
          my $pr = $proxylist[$j];
          $proxycheck->proxy(['http'] => 'http://'.$pr);
          if ($proxycheck->get('http://ya.ru')->is_success) {return $pr;}
        }
     
      print "Working proxy not found!\n";
      undef $pr;
      undef @proxlist;
      undef $proxycheck;
      exit;
    }
     
    sub f_agent {
    my @agent = qw(Opera/9.15 Opera/9.12 Opera/8.60b IE/4.0 IE/5.0 IE/6.0 IE/7.0 Mozilla/4.0 Mozilla/5.0);
    return $agent[rand scalar @agent];
    }
     
    sub help() {
    print "\n";
    print "<------------------------[admf.pl]------------------------>\n";
    print "Usage:\n";
    print "--targeturl=URL target site\n";
    print "for use proxy add flag. file: proxy.txt (ip:port): --proxy\n";
    print "Example:\n";
    print "admf.pl --targeturl=http://xxx.com --proxy\n";
    print "<--------------------------------------------------------->\n";
    print "\n";
    }
     
    undef $targeturl;
    undef $proxy;
    undef $adminfile;
     
    __END__
     
  6. energ77

    energ77 New Member

    Joined:
    17 Jul 2010
    Messages:
    71
    Likes Received:
    4
    Reputations:
    0
    Название:
    Скрипт выводящий все файлы Flash видео из определенного каталога,с опоисанием и возможностью задания картинку, которая будет показыватся до воспроизведения видео.

    Параметры :
    $dirname - папка где лежит видео
    $width - ширина видео
    $height - высота видео

    Описание :
    Скрипт находит все файлы вида ***.flv и отображает как Flash вмдео на сайте, так же если есть файл jpg и txt с тем же именем и в том же каталоге что ***.flv, то он их использует как картинку до отображения видео и описание находящие под Flash роликом.
    Кроме скрипта в ту же папку, что скрипт надо положить файл player.swf (его можно взять здесь). Легко можно скрипт настроить и на другой плеер Flash видео.

    Пример вызова :
    echo WorkDir("video",540,432);


    Код:

    PHP:
    #Функция обработки директории 
    function WorkDir($dirname,$width,$height) { 
    $str ""
      if (
    $dir = @opendir($dirname)) { 
         while ((
    $file = @readdir($dir)) !== false) { 
             
    $str .= getFlashVideo($dirname.'/',$file,$width,$height); 
         }  
         
    closedir($dir); 
      } 
    return 
    $str


    #Функция обработки видео 
    function getFlashVideo($dir,$file,$width,$height) { 
    $str ""
      if(
    strpos($file,".flv")>0) { 
              
    $img str_replace('.flv','.jpg'$file); 
              
    $txt $dir str_replace('.flv','.txt'$file); 
              
    $comment = @file_get_contents($txt); 
              
    $str .= '<object id="player" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" name="player" width="'
                 
    $width.'" height="'.$height.'">"'
         
    $str .= '<param name="movie" value="player.swf" />'."\n"
         
    $str .= '<param name="allowfullscreen" value="true" />'."\n"
         
    $str .= '<param name="allowscriptaccess" value="always" />'."\n"
              
    $str .= '<param name="flashvars" value="file='.$dir
                 
    $file '&image='.$dir.$img.'" />'."\n"
              
    $str .= '</object> <br />'.$comment.'<br />&nbsp;<br />&nbsp;'."\n";                
     }        
    return 
    $str;        

     
  7. bagatyr

    bagatyr New Member

    Joined:
    5 May 2011
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    Парсер + Синонимизатор + Экспорт в CMS

    Synonyma.ru. Плагин работает на базе универсального парсера Datacol. После сбора и уникализации контента, парсер может автоматически экспортировать данные в различные CMS, такие как Wordpress и DLE. Таким образом можно автоматически создавать сателлиты с уникальным и более менее читаемым контентом в различных нишах.

    На видео как раз показан пример генерации сателлита посредством взаимодействия Datacol и плагина синонимизации.

    Задать вопросы по поводу плагина вы можете напрямую мне. Мои контакты можно найти здесь.

    Купить плагин вместе с Datacol можно у автора парсера на официальном сайте Datacol.
     
  8. GAiN

    GAiN Elder - Старейшина

    Joined:
    2 Apr 2011
    Messages:
    2,552
    Likes Received:
    167
    Reputations:
    99
    Отображение строки UserAgent:
    PHP:
    <script language="javascript">
    <!-- var 
    where document.referrer 
    var name navigator.appName 
    var vers navigator.appVersion
     document
    .write(" <FONT COLOR=blue><b><BR>Браузер:</FONT></b> "+name+" <FONT COLOR=green>"+vers+"<BR></FONT></FONT>")// --> 
    </script>

    отображает станицу с который вы пришли на эту:
    PHP:
    <script language="javascript"><!-- 
    var 
    where document.referrer 
    var name navigator.appName 
    var vers navigator.appVersion
     document
    .write("<FONT COLOR=6600CC><FONT SIZE=2><b>предыдущая страница:</FONT></b></FONT><FONT COLOR=003366><FONT SIZE=1><BR>"+where+"</FONT>"// --> 
    </script>
     
  9. GAiN

    GAiN Elder - Старейшина

    Joined:
    2 Apr 2011
    Messages:
    2,552
    Likes Received:
    167
    Reputations:
    99
    скрипт Internet Explorer - устаревший браузер

    скрипт - выводящий окошко в осле (Internet Explorer) о том что он устарел и пора его сменить на другой браузер:

    PHP:
    <!--[if IE]>
      <
    div style='border: 1px solid #F7941D; background: #FEEFDA; text-align: center; clear: both; height: 90px; position: relative;top: -695px;'>
        <
    div style='position: absolute; right: 3px; top: 3px; font-family: courier new; font-weight: bold;'><a href='#' onclick='javascript:this.parentNode.parentNode.style.display="none"; return false;'><img src='http://sitename.ru/img/browser/ie6nomore-cornerx.jpg' style='border: none;' alt='Скрыть уведомление'/></a></div>
        <
    div style='width: 640px; margin: 0 auto; text-align: left; padding: 0; overflow: hidden; color: black;'>
          <
    div style='width: 75px; float: left;'><img src='http://sitename.ru/img/browser/ie6nomore-warning.jpg' alt='Warning!'/></div>
          <
    div style='width: 275px; float: left; font-family: Arial, sans-serif;'>
            <
    div style='font-size: 14px; font-weight: bold; margin-top: 12px;'>Вы используете устаревший браузер!</div>
            <
    div style='font-size: 12px; margin-top: 6px; line-height: 12px;'>Отображение страниц может быть не корректным.Для более удобной и безопасной работы с сайтомпожалуйстаобновите ваш браузер.<br /><b><a href'http://www.whatbrowser.org/ru/'>Что такое браузер?</a><br /><a href='http://getbrowsers.com/ru/why/'>Зачем его обновлять?</a></b></div>
          </
    div>
         &
    nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong>рекомендуемые браузеры:</strong>
          <
    div style='width: 75px; float: left;'><a href='http://www.mozilla-europe.org/ru/firefox/' target='_blank'><img src='http://sitename.ru/img/browser/mozila.png' style='border: none;' alt='Firefox'/></a><br>Firefox</div>
          <
    div style='width: 75px; float: left;'><a href='http://www.opera.com' target='_blank'><img src='http://sitename.ru/img/browser/opera.png' style='border: none;' alt='Opera'/></a><br>Opera</div>
          <
    div style='width: 73px; float: left;'><a href='http://www.apple.com/ru/safari/download/' target='_blank'><img src='http://sitename.ru/img/browser/safari.png' style='border: none;' alt='Safari'/></a><br>Safari</div>
          <
    div style='float: left;'><a href='http://www.google.com/chrome' target='_blank'><img src='http://sitename.ru/img/browser/chrome.png' style='border: none;' alt='Google Chrome'/></a><br>Chrome</div>
        </
    div>
      </
    div>
    <![endif]-->
    ссылки вида:
    http://sitename.ru/img/browser/safari.png можно заменить на ссылки с иконками браузеров
     
  10. zifanchuck

    zifanchuck Elder - Старейшина

    Joined:
    27 Oct 2008
    Messages:
    504
    Likes Received:
    161
    Reputations:
    3
    Функция для рандомизации текста

    Функция для рандомизации текста. Писал для одного своего скрипта.
    Входной параметр текст вида

    на выходе какой-то рандомный вариант. Например
    slovo2,slovo7
    или
    slovo2,slovo6
    или
    slovo5,slovo7
    ........

    PHP:
    <?php

    function random_text($text)
    {
    //(c) Zifanchuck

        
    while(preg_match_all("#\{([^\{\}]*)\}#",$text,$regs))
        {
             
    $min $regs[1][0];

             for(
    $i=0;$i<count($regs[1]);$i++)
             {
                 if(
    strlen($regs[1][$i])<strlen($min))
                 {
                     
    $min $regs[1][$i];
                 }
             }

            
    $temp explode("|",$min);
            
    $rand $temp[mt_rand(0,count($temp)-1)];

            
    $text preg_replace('#\{'.preg_quote($min).'\}#sUS',$rand,$text);
        }

    return 
    $text;
    }



    $text "{слоово1|slovo2|slove3|{slovp4|slovo5}},{slovo6|slovo7}";


    echo 
    random_text($text);
    ?>

    Вроде работает=)
     
    1 person likes this.
  11. GAiN

    GAiN Elder - Старейшина

    Joined:
    2 Apr 2011
    Messages:
    2,552
    Likes Received:
    167
    Reputations:
    99
    В закладки для всех браузеров

    содержимое скрипта:
    (на примере файла add.js)

    PHP:
    function add_favorite(a) { 
        
    title=document.title
        
    url=document.location
        try { 
            
    // Internet Explorer 
            
    window.external.AddFavorite(urltitle); 
        } 
        catch (
    e) { 
            try { 
                
    // Mozilla 
                
    window.sidebar.addPanel(titleurl""); 
            } 
            catch (
    e) { 
                
    // Opera 
                
    if (typeof(opera)=="object") { 
                    
    a.rel="sidebar"
                    
    a.title=title
                    
    a.url=url
                    return 
    true
                } 
                else { 
                
    // Unknown 
                
    alert('Нажмите Ctrl+D чтобы добавить страницу в закладки.'); 
                } 
            } 
        } 
        return 
    false
    }
    вывод скрипта на нужную страницу:
    PHP:
    <script type="text/javascript" src="http://sitename.ru/zakladka/add.js"></script>
    кнопка:
    PHP:
    <a href="http://site.ru" onclick="javascript: return add_favorite(this);" title="Добавить в закладки">В закладки</a>
     
  12. GAiN

    GAiN Elder - Старейшина

    Joined:
    2 Apr 2011
    Messages:
    2,552
    Likes Received:
    167
    Reputations:
    99
    скачка изображений без их открытия

    файл download.php
    PHP:
    <?php
    header
    ('Content-type: application/octet-stream');

    header("Content-Disposition: attachment; filename=".$_GET['url']);




    $x fread(fopen($_GET['url'], "rb"), filesize($_GET['url']));

    echo 
    $x;
    ?>
    и далее ссылка на скачку вида:
    http://www.trei-gmbh.ru/download.php?url=images/certification/permit/2014-04-22_razr_ptk_trei_vzrivzashchs.jpg
    желтым выделен путь к картинке
     
  13. crazy_script

    crazy_script New Member

    Joined:
    3 Feb 2011
    Messages:
    24
    Likes Received:
    2
    Reputations:
    -3
    Определение местоположения

    Может кому пригодится

    <!DOCTYPE html>
    <html>
    <body>
    <script language="javascript">
    if(navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(
    function (position) {
    document.getElementById("latitude").innerHTML = positioin.coords.latitude;
    document.getElementById("longitude").innerHTML = positioin.coords.ongitude;
    }
    );
    }
    </script>
    <div id="coords">Широта: <span id="latitude">Unknown</span>
    <br />Долгота: <span id="longitude">Unknown</span><br />
    </div>
    </body>
    </html>



     
    #1073 crazy_script, 16 Jul 2011
    Last edited: 16 Jul 2011
  14. miako

    miako Member

    Joined:
    20 Jan 2010
    Messages:
    164
    Likes Received:
    13
    Reputations:
    5
    Надо уточнить что поддерживается не всеми браузерами.
     
  15. bjong

    bjong Elder - Старейшина

    Joined:
    26 Jul 2003
    Messages:
    52
    Likes Received:
    12
    Reputations:
    18
    Удобно да, http://www.trei-gmbh.ru/download.php?url=about.htm :D
     
  16. dpe_x

    dpe_x Elder - Старейшина

    Joined:
    8 Sep 2010
    Messages:
    180
    Likes Received:
    35
    Reputations:
    14
    грабер фото с мамбы

    закидываем ссылку с поиска мамбы,
    скрипт проматает пару страниц и сохранит фото среднего размера

    PHP:
     <?php
        
    //ссылка..
        
    $search_link 'http://mamba.ru/search.phtml?t=a&sz=s&ni=1&wp=1&ia=N&lf=F&af=18&at=21&s_c=0_0_0_0&s_tg=&wr=1';
        
    //
        
        
    set_time_limit(0);
        
    mkdir('img');    
        
    start_parse($search_link);
        
        function 
    start_parse($search_link
        {        
            
    preg_match_all("/<a href=\"(.*)\" class=\"new-pager-item\">\d*</" file_get_contents($search_link), $pages_array);
            foreach(
    $pages_array[1] as $link_on_page)
                
    get_user_page($link_on_page);
        }
        
        function 
    get_user_page($link_on_page
        {
            
    preg_match_all("/><img src=\"(.*=\d*)\" alt=\"\" \/><\/a><\/div>/" file_get_contents('http://mamba.ru/search.phtml'.$link_on_page), $image_array);
            foreach(
    $image_array[1] as $user_image
            {
                
    $good_image str_replace("small_face""medium"$user_image);
                
    save_image_to_file($good_image);
            }                
        }
        
        function 
    save_image_to_file($good_image
        {
            
    $rand rand(0500000);
            
    $fp fopen('./img/'.$rand.'.jpg''w');
            
    fwrite($fpfile_get_contents($good_image));
            
    fclose($fp);
            print 
    "save_img ".$rand.".jpg\n";
        }

     
     
  17. GAiN

    GAiN Elder - Старейшина

    Joined:
    2 Apr 2011
    Messages:
    2,552
    Likes Received:
    167
    Reputations:
    99
    скроллинг страница наверх javascript

    Прокрутка страницы снизу вверх
    PHP:
    <script language="JavaScript">
    <!--
    function 
    scrollit(){
    for (
    I=500I>=1I--){
    self.scroll(1,I)
    }
    }
    //-->
    </script>

    PHP:
    <form><input type="button" value="вверх" onClick="scrollit()"</form>
     
  18. SHiNiGaMi

    SHiNiGaMi Banned

    Joined:
    3 Jan 2010
    Messages:
    389
    Likes Received:
    55
    Reputations:
    15
    Постер сообщений в LiveJournal

    В файл accs.txt кладем аккаунты в формате:
    логин:пароль
    логин:пароль
    ...

    В файл data.txt кладем сообщения в формате
    тема1:текст1|тема2:текст2|тема3:текст3

    сообщения отправляются через интерфейс xmlrpc
    PHP:
    ##########
    #LiveJournal poster by SHiNiGaMi
    #icq 478866968
    ##########

    use IO::Socket;

    open(ACCS,"accs.txt");
    @accs = <ACCS>;
    close(ACCS);
    chomp @accs;

    open(DATA,"data.txt");
    @data = <DATA>;
    close(DATA);
    $data = join("",@data);
    @data = split(/\|/, $data);

    foreach $acc(@accs)
    {
        ($login,$pass) = split(/:/, $acc);
        
        foreach $send(@data)
        {
            ($title, $text) = split(/:/, $send);
            if(liveJournalPost($login,$pass,$title,$text))
            {
                print "message poster for ".$login."\n";
            }
            else
            {
                print "Something's wrong with socket/account\n";
            }
        }
    }

    sub liveJournalPost
    {
        @dates = localtime;
        $y = $dates[5]+1900;
        $m = $dates[4]+1; $m = '0'.$m;
        $d = $dates[3]; $d = '0'.$d;
        $h = $dates[2];
        $i = $dates[1];

        $xml_data = '<?xml version="1.0"?>
        <methodCall>
          <methodName>LJ.XMLRPC.postevent</methodName>
            <params>
              <param>
                <value>
                  <struct>
                    <member>
                      <name>username</name>
                      <value>
                        <string>'.$_[0].'</string>
                      </value>
                    </member>
                    <member>
                      <name>password</name>
                      <value>
                        <string>'.$_[1].'</string>
                      </value>
                        </member>
                    <member>
                <name>event</name>
                <value>
                  <string><![CDATA['.$_[3].']]></string>
                </value>
              </member>
              <member>
                <name>subject</name>
                <value>
                  <string>'.$_[2].'</string>
                </value>
              </member>
              <member>
                <name>lineendings</name>
                <value>
                  <string>pc</string>
                </value>
              </member>
              <member>
                <name>year</name>
                <value>
                  <int>'.$y.'</int>
                </value>
              </member>
              <member>
                <name>mon</name>
                <value>
                  <int>'.$m.'</int>
                </value>
              </member>
              <member>
                <name>day</name>
                <value>
                  <int>'.$d.'</int>
                </value>
              </member>
              <member>
                <name>hour</name>
                <value>
                  <int>'.$h.'</int>
                </value>
              </member>
              <member>
                <name>min</name>
                <value>
                  <int>'.$i.'</int>
                </value>
              </member>
            </struct>
          </value>
        </param>
      </params>
    </methodCall>';

        $header = join("\r\n" => "POST /interface/xmlrpc HTTP/1.0", 
                   "User-Agent: XMLRPC Client 1.0",
                   "Host: www.livejournal.com", 
                   "Connection: Close", 
                   "Content-Type: text/xml", 
                   "Content-Length:".length($xml_data),
                   "",
                   $xml_data);
        
        my $sock = IO::Socket::INET->new(PeerAddr => 'www.livejournal.com',
                                            PeerPort => 80,
                                            PeerProto => 'tcp',
                                            TimeOut => 10);
        
        if($sock)
        {
            print $sock $header;
            sysread($sock,$ans,99999);
            
            close $sock;
            
            if($ans =~ m#<methodResponse><fault><value><struct><member><name>faultString</name><value><string>(.*?)</string>#i)
            {
                warn $1;
                return false;
            }
            return true;
        }
        else
        {
            return false;
        }
    }
     
    #1078 SHiNiGaMi, 23 Jul 2011
    Last edited: 23 Jul 2011
  19. maximka77

    maximka77 New Member

    Joined:
    7 Apr 2010
    Messages:
    16
    Likes Received:
    0
    Reputations:
    0
    Оо..
     
  20. demko

    demko New Member

    Joined:
    19 Nov 2009
    Messages:
    17
    Likes Received:
    2
    Reputations:
    1
    crazy_script а данные по geo через браузер как я понял определяются, правильно?
     
Loading...