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

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

  1. govorunkz

    govorunkz New Member

    Joined:
    5 Dec 2010
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    а есть рабочая тема этого скрипта?
     
  2. derk

    derk New Member

    Joined:
    9 Feb 2011
    Messages:
    9
    Likes Received:
    3
    Reputations:
    -8
    накручевает хосты и кликает по баннерам в баннерной сети
    Кликозавр


    PHP:
    <?php 

    function get($url$proxy)   
    {   
    $ch curl_init();   
    curl_setopt($chCURLOPT_URL$url);   
    curl_setopt($chCURLOPT_RETURNTRANSFER1);  
    curl_setopt($chCURLOPT_FOLLOWLOCATION1); 
    curl_setopt($chCURLOPT_CONNECTTIMEOUT2); 
    curl_setopt($chCURLOPT_TIMEOUT2); 
    curl_setopt($chCURLOPT_USERAGENT'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.1) Gecko/2008070208');   
    curl_setopt($chCURLOPT_PROXY"$proxy");   
    curl_setopt($chCURLOPT_REFFERER"http://cs1437.vkontakte.ru/[[IMPORT]]/adv.spes-it.ru/swf/containers/vk_570x100.swf?spesit_pid=Ваш id в сети &spesit_sid=session"); 
    curl_setopt($chCURLOPT_POST1); 
    curl_setopt($chCURLOPT_POSTFIELDS'<response set="2" session="session" pid="Ваш id в сети " nid="2" />'); 
    $ss=curl_exec($ch);   
    curl_close($ch);   
    return 
    $ss;   
    }      

    function 
    get2($url$proxy)   
    {   
    $a=rand(1,3); 
    if (
    $a == 1){ 
    $ref "Ссылка на ваше прило в ВК"

    if (
    $a == 2){ 
    $ref "На второе прило "

    if (
    $a == 3){ 
    $ref "Третье прило"


    $ch curl_init();   
    curl_setopt($chCURLOPT_URL$url);   
    curl_setopt($chCURLOPT_RETURNTRANSFER1);  
    curl_setopt($chCURLOPT_FOLLOWLOCATION1); 
    curl_setopt($chCURLOPT_CONNECTTIMEOUT2); 
    curl_setopt($chCURLOPT_TIMEOUT2); 
    curl_setopt($chCURLOPT_USERAGENT'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.1) Gecko/2008070208');   
    curl_setopt($chCURLOPT_PROXY"$proxy");   
    curl_setopt($chCURLOPT_REFFERER$ref); 
    curl_setopt($chCURLOPT_POST1); 
    curl_setopt($chCURLOPT_POSTFIELDS'<response set="2" session="session" pid="Ваш id в сети " nid="2" />'); 
    $ss=curl_exec($ch);   
    curl_close($ch);   
    return 
    $ss;   
    }  

    $proxy = array();  
    $file 'proxynew.txt';  
    if( 
    is_file($file) ) {  
    $handle fopen($file"r");  
    while ((
    $data fgetcsv($handle1000",")) !== FALSE) {  
    $proxy[] = $data[0];  
    }  
    }  

    foreach( 
    $proxy as $prox ) {  
    $content get('http://adv.spes-it.ru/cgi/adv/banner'$prox);  
    echo 
    $content;  
    echo 
    $prox
    echo(
    "~~~".$n++."~~~"); 

    $p xml_parser_create(); 
    xml_parse_into_struct($p,$content,$vals,$index); 
    xml_parser_free($p); 

    if (
    count($vals[0][attributes])>1){ 
    echo 
    $vals[0][attributes][LINK];  
    $p rand(1,100); 
    if (
    $p 95){ 
    $content get2($vals[0][attributes][LINK], $prox);  
    echo 
    $content;  
    echo 
    $prox


    }  
    ?>
     
  3. ForumTUT

    ForumTUT New Member

    Joined:
    17 Feb 2011
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    Нужна программа (как то попадалась в сети, сейчас не могу найти),
    чтобы автоматизировать действия. Прогрмма запоминает действия и повторяет их.
    Подскажите, кто знает.
     
  4. bxN5

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

    Joined:
    8 Jan 2006
    Messages:
    687
    Likes Received:
    138
    Reputations:
    32
    _http://www.google.com.ua/search?sourceid=chrome&ie=UTF-8&q=%D0%B0%D0%B2%D1%82%D0%BE%D0%BA%D0%BB%D0%B8%D0%BA%D0%B5%D1%80
     
  5. GAiN

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

    Joined:
    2 Apr 2011
    Messages:
    2,550
    Likes Received:
    172
    Reputations:
    99
    Обрезка Flash роликов

    это не скрипт конечно же, но это я когда то искал сильно:
    Обрезка флеш ролика
    например вы вставили часы на сайт а там имя разработчика или рамка не нужная есть и вам обрезать нужно - чтобы не показывалось на сайте ...
    PHP:
    обрезать снизу
    <div style="height:100px;overflow:hidden;">
    <
    object type="application/x-shockwave-flash" data="http://www.youtube.com/v/enIAXbx6fII&hl=en_GB&fs=1&" width="400" height="300">
    <
    param name="movie" value="http://www.youtube.com/v/enIAXbx6fII&hl=en_GB&fs=1&" />
    <
    param name="wmode" value="opaque" />
    </
    object
    </
    div>
    обрезать сверху
    <div style="height:100px;overflow:hidden;">
    <
    div style="margin-top:-200px;">
    <
    object type="application/x-shockwave-flash" data="http://www.youtube.com/v/enIAXbx6fII&hl=en_GB&fs=1&" width="400" height="300">
    <
    param name="movie" value="http://www.youtube.com/v/enIAXbx6fII&hl=en_GB&fs=1&" />
    <
    param name="wmode" value="opaque" />
    </
    object
    </
    div>
    </
    div>
     
    #1045 GAiN, 3 Apr 2011
    Last edited: 3 Apr 2011
  6. GAiN

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

    Joined:
    2 Apr 2011
    Messages:
    2,550
    Likes Received:
    172
    Reputations:
    99
    Защита от копирования текста сайта

    1)Защита от копирования текста сайта с использованием атрибута unselectable. Этот атрибут запрещает или разрешает выделять текст в каком либо элементе (on - запрещает, off - разрешает) - unselectable="on".
    Пример показан в виде слоя №1. Код следующий:
    PHP:
    <div unselectable="on" style="position: absolute; width: 300px; height: 100px; padding: 20px; background-color:#FFB6C1; text-align:justify">Текст в слое №1 защищён от копирования с помощью свойства unselectable со значением onЗащита от копирования работает в Internet Explorer и OperaНе работает в Firefox.</div>
    2)
    Защита от копирования текста сайта с использованием свойства z-index в CSS. С помощью него задаётся порядковый номер элемента в стеке. Элемент с большим порядковым номером всегда находится перед элементом с меньшим порядковым номером. Это свойство можно использовать для усложнения процесса копирования следующим образом. Выбираем элемент содержащий текст. Это может быть параграф - <p></p>, заголовок - <h1></h1>, слой - <div></div> и т.д. Задаём для него свойство z-index. Например, значение 1 - z-index: 1. Затем вставляем рисунок размером с имеющийся текст. Рисунок должен быть пустым прямоугольником и полностью прозрачным. Задаём для него свойство z-index: 2. Поскольку свойство z-index у рисунка больше, то он расположится поверх текста. Таким образом, текст нельзя будет выделить и скопировать.
    Пример показан в виде слоя №2. Код следующий:
    PHP:
    <div style="position: relative; width: 300px; height: 100px; padding: 20px; background-color:#FFB6C1; text-align:justify; z-index:1"><img src="../pictures/hidden.gif" style="z-index:2; position: absolute">Текст в слое №2 защищён от копирования с помощью наложения прозрачного рисунка поверх него с использованием свойства z-indexЗащита работает во всех браузерах.</div>
    3)
    Защита от копирования текста сайта с использованием следующих атрибутов:
    атрибут oncontextmenu возникает, когда пользователь щелкает правой кнопкой мыши в клиентской области браузера для вызова контекстного меню. Таким образом, можно запретить вызов контекстного меню, если присвоить данному атрибуту значение return false - oncontextmenu="return false";
    атрибут oncopy возникает при копировании в буфер обмена. Если присвоить данному атрибуту значение return false, то выделенный текст не попадет в буфер обмена - oncopy="return false";
    атрибут onselectstart возникает при выделении объекта или текста. Если присвоить данному атрибуту значение return false, то выделения не произойдет - onselectstart="return false".
    Пример показан в виде слоя №3. Код следующий:
    PHP:
    <div oncopy="return false" oncontextmenu="return false" onselectstart="return false" style="position: relative; width: 300px; height: 100px; padding: 20px; background-color:#FFB6C1; text-align:justify">Текст в слое №3 защищён от копирования с помощью свойства oncopyoncontextmenu и onselectstart со значением return falseЗащита от копирования не работает в Opera.</div>
     
    #1046 GAiN, 3 Apr 2011
    Last edited: 3 Apr 2011
  7. GAiN

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

    Joined:
    2 Apr 2011
    Messages:
    2,550
    Likes Received:
    172
    Reputations:
    99
    простой перенос длинного текста

    PHP:
    <div style="width:190px; word-break:break-all">текст длинный<div>
     
  8. Shark04

    Shark04 Banned

    Joined:
    22 Nov 2010
    Messages:
    0
    Likes Received:
    5
    Reputations:
    0
    Скрипт сохраняет всю информации о гостях(посетителях) вашего сайта (Дата, время,host name, IP-адрес и т.д.) и присылает вам на электронную почту.


    PHP:
     #! /usr/local/bin/perl


    #                              mail-log.cgi
    #
    #                    Version 2.03   --   27 Jan 1997
    #                   http://www.all-yours.net/scripts/
    #             Perl (release 4 or 5) script for Unix servers


    #     Written by Walter Soldierer of All-Yours Internet Solutions
    #               ([email protected]), one of the authors of
    #
    #                          THE DIGITAL POSTCARD
    #
    #           A FREE service to increase your web site's exposure!
    #                            Need more hits?
    #            Check it out at http://www.all-yours.net/postcard/


    # This script saves access date+time, the visitor's host name, their IP
    # address and browser type, and the refering page (if any) to a log file
    # on your server (default name = logfile.txt). This file will be automatically
    # mailed to your mailbox. You can change the mailing interval according
    # to your needs (default value is every 50 accesses to the page to be
    # logged). The script will autocreate the logfile, if it does not exist.


    # ----- BEGIN INSTALLATION INSTRUCTIONS -----
    #  - Save this script to a file mail-log.cgi
    #  - Cut installation instructions (optional)
    #  - Change the first script line, if your server's Perl executable
    #    is not located in /usr/local/bin/perl
    #  - Customize the settings below (*SETTINGS*)
    #    * Change e-mail address for $recipient
    #    * Set $log_page to 1 if you also want to log the page that
    #      called this script. Recommended in case you want to log accesses
    #      to more than one HTML page.
    #    * Set $max_entries to your needs, if you want to have more or less
    #      than 50 log entries mailed to your mailbox each time.
    #    * Change path/filename for log file, if necessary
    #      (default = logfile.txt in your cgi directory)
    #    * Change values for $check_host and $interval, if necessary
    #    * Change filename for host/time file, if necessary (default = hosttime.txt)
    #  - ASCII-upload mail-log.cgi to your cgi directory (cgi-bin, cgi-local...)
    #    Make it executable (chmod mail-log.cgi 755)
    #  - add the following line (Server Sde Include) to the page(s) to be logged
    #    (after the <body> tag):
    #    <!--#exec cgi="/your-cgi-directory/mail-log.cgi"-->
    #    HTML pages with Server Side Include tags often need to have the
    #    file extension ".shtml" !!!! (don't forget to update
    #    all links to this page(s) accordingly)
    #    (You should test the script with a test.shtml page first)
    #  - Load the logged page(s) with your browser.
    #  - View your new logfile
    #    It should look something like this:
    #    
    #    Time: 05/30/96 14:44:07 EDT
    #    Host: your.host.and.domain
    #    Addr: 123.45.67.89
    #    With: Mozilla/1.22 (compatible; MSIE 2.0; Windows 95)
    #    Page: test.shtml
    #    From: [no entry here, if you accessed your page directly (otherwise Yahoo etc.)]
    #
    #    If the script doesn't work and you want to contact us, please check
    #    the following first:
    #    - did you upload the script in ASCII mode (*not* binary)?
    #    - did you chmod the script 755
    #    - does your server support the "exec cgi" Server Side Include?
    #    - did you rename the html file to .shtml
    #    - did you check the path to your server's Perl executable?
    #
    #    If you still have a problem and you want us to help you, we need to know:
    #     - a detailed description of your problem
    #     - your script's settings section
    #     - html code and file name for the page to be logged
    #     - script related error messages from your server's error log file
    # ----- END INSTALLATION INSTRUCTIONS -----



    # -----------------------------------------------------------------------
    # *SETTINGS* to customize this script:

    # Your email address (within single quotes!):
    $recipient '[email protected]';

    # Do you want to log the .shtml page's file name?
    # (recommended when more than one poage is logged)
    # 1 = the .shtml page that called this script will be logged
    # 0 = the .shtml page that called this script will not be logged
    $log_page 1;

    # Do you want to log your visitor's IP number?
    # The script attemps to call a domain name server in order to resolve
    # IP addresses (such as 132.45.323.5) to a host name (such as yourdomain.com)
    # However, resolving IP addressses doesn't work 100 per cent so you
    # might also want to log rhe IP addresses.
    # 1 = IP addresses will be logged
    # 0 = IP addresses will be discarded
    $log_IP 1;

    # Number of logged visits mailed to your mailbox at a time:
    $max_entries 50;

    # Change logfile name if necessary:
    $logfile 'logfile.txt';

    # server's sendmail directory:
    $mailprogam '/usr/lib/sendmail';

    # If you set $check_host = "1" the script attempts not
    # to log multiple page reloads.
    # When a page was accessed from the same host by using the same
    # browser, this visit will only be logged after the time 
    # interval specified in $interval.
    # Example: You set $interval to 1800 (seconds). If there was no
    # access from a different host in the meantime, a visitor from the
    # same host who uses the same browser will only be logged when s/he
    # accesses your page 30 minutes after visitor one.
    # In other words: If someone reloads the page many times, in most cases
    # s/he needs to wait 30 minutes after each reload to make your log file
    # grow. When you set $check_host to 0 even the reloads will be logged.
    $check_host 1;  # set to zero if you don't like this feature

    # If you set the $check_host variable to 1, specify a time interval to
    # ignore page reloads
    $interval 600;   # seconds!

    # If you set the $check_host variable to 1, change the name of the file
    # that temporarily stores host and time information (if necessary)
    $hostfile 'hostfile.txt';




    # don't change anything past this line unless you know what you are doing
    # -----------------------------------------------------------------------

    # create a date+time string
    $shortdate = `date +"%D %T %Z"`; 
    chop ($shortdate);

    # Some of Perl's network info functions required here
    ($part1,$part2,$part3,$part4)=split(/./,$ENV{REMOTE_ADDR});
    $IP_adr=pack("C4",$part1,$part2,$part3,$part4);
    (
    $host_name)=(gethostbyaddr("$IP_adr"2));

    print 
    "Content-type: text/plain\n\n";

    if (
    $check_host) {
       
    # read host and time info from last visitor
       
    if (-"$hostfile") {
          
    open(HOST,"$hostfile");
          
    $hostline = <HOST>;
          
    chop($hostline) if $hostline =~ /n$/;
          
    close(HOST);
          (
    $old_time,$old_number,$old_page,$old_browser) = split(/|/,$hostline);
       }

       
    # save host and time info and check if this is a page reload
       
    open(HOST,">$hostfile");
       
    $seconds time;
       print 
    HOST "$seconds\|$ENV{REMOTE_ADDR}\|$ENV{'DOCUMENT_URI'}\  |$ENV{'HTTP_USER_AGENT'}";
       
    close(HOST);

       if (
    time $old_time $interval
       
    && $ENV{REMOTE_ADDReq $old_number
       
    && $ENV{'DOCUMENT_URI'eq $old_page
       
    && $ENV{'HTTP_USER_AGENT'eq $old_browser) {
          exit;  
    # probably same visitor, so exit
       
    }
    }

    # open log file for output and append new log data
    open (LOGFILE">>$logfile");
    print 
    LOGFILE "Time: $shortdate\n";
    print 
    LOGFILE "From: $ENV{'HTTP_REFERER'}\n";
    print 
    LOGFILE "IP  : $ENV{REMOTE_ADDR}\n" if $log_IP;
    print 
    LOGFILE "Host: $host_name\n";
    print 
    LOGFILE "With: $ENV{'HTTP_USER_AGENT'}\n";
    print 
    LOGFILE "Page: $ENV{'DOCUMENT_URI'}\n" if $log_page;
    print 
    LOGFILE "\n";
    close (LOGFILE);

    # open log file for input and count log entries
    open (LOGFILE$logfile);
    @
    entries = <LOGFILE>;
    close (LOGFILE);
    $log_rows 7;
    $log_rows-- unless $log_page;
    $log_rows-- unless $log_IP;
    $log_count = @entries/$log_rows;

    # if number of logs >= max. number of logs, mail file and delete it
    if ($log_count >= $max_entries) {
       
    open (MAIL"|$mailprogam $recipient") || die "Can't open $mailprogam!\n";
       print 
    MAIL "Subject: Mail-log File\n\n";
       print 
    MAIL "@entries\n";
       
    close MAIL;

       
    unlink $logfile;
    }

    # end of script  

    Лично для меня очень полезный скрипт, думаю и вам пригодится :)
     
  9. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Shark04 логи апача делают то же самое
     
    _________________________
  10. ta-kyn

    ta-kyn Member

    Joined:
    7 May 2009
    Messages:
    41
    Likes Received:
    8
    Reputations:
    2
    small_script

    Мои 5 копеек. В сети редко появлялся и нужно было отслеживать, когда страница 1-а обновиться (и получить ее html) на mail. См. коммент. Работало по cron.

    Code:
    #!/usr/bin/perl -w
    use CGI::Carp qw(fatalsToBrowser);
    use locale;
    use POSIX 'locale_h';
    setlocale(LC_CTYPE, 'ru_RU.CP1251');
    use LWP::Simple;
     
    #Здесь задем url целевого сайта
    my $doc = get("http://[URL]/");
    if (defined($doc)) {
            # Если на странице обнаружена надпись "coming soon" то еще рано рыпаться =(.
    	if (index( $doc, "coming soon") == -1) {
    		$stat = "Start";
     
    	} else { 
    		$stat = "Не-а =(!";
    		 }
    }
    else {
    $stat = "Error upload!"
    } 
     
    #Тупим дату
    @date = localtime(time());
    $year = $date[5] + 1900;
     
    print $stat."\n"."\n";
    print $date[2].":".$date[1]." ".$date[3]."-".$date[4]."-".$year ." ". $stat."\n";
     
    #Тупим страничку
    if ($stat eq "Start") {
    	print "HTML code: ".$doc."/n";
    }
     
    undef $doc;
     
  11. AGIMgal

    AGIMgal New Member

    Joined:
    9 Jun 2010
    Messages:
    66
    Likes Received:
    0
    Reputations:
    0
    незнаю где спросит, но есть гденить скрипт на скачивание музыки с http://music.yandex.ru? там очень удобно, всё по альбомам. желательно скачивание альбомами.
     
  12. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,193
    Reputations:
    252
    Двойная каптча, сомневаюсь что пробиваема.

    Показывается 2 капчи, но с виду это не видно (как-будто одна) и надо ввести число с 2 картинок сразу.

    index.php
    PHP:
    <?php
        session_start
    ();
        
    ?>
        <img src="captcha.php?step=1" /><img src="captcha.php?step=2" />
        <form method="post">
        Введите число: <input type="text" name="getСode">
        <input name="sub" type=submit value="Ввод">
        </form>
        <?php
        
    if($_POST['sub'])
        {
            if(
    $_POST['getСode'] == $_SESSION['step1'].$_SESSION['step2'])
            {
                echo 
    "Число введено верно";
            }
            else
            {
                echo 
    "Число введено неверно";
            }
        }
    captcha.php
    PHP:
    <?php
        
    /********************************
         * © Isis 2011 !!!!!
         *******************************/
        
    session_start();
        
        
    $step = isset($_GET['step']) ? intval($_GET['step']) : null;
        
        if (
    $step == 1)
        {
            
    $string $_SESSION['step1'] = rand(100999);
        }
        else
        {
            
    $string $_SESSION['step2'] = rand(100999);
        }   
        
        
    $im imagecreatetruecolor(8045);
        
    imagealphablending($imfalse);
        
    imagesavealpha($imtrue);
        
    $trans imagecolorallocatealpha($im255255255227);
        
    $black imagecolorallocate($im2552550);
        
    imagefilledrectangle($im00299299$trans);
        
    imagealphablending($imtrue);
        
    imagettftext($im400048$black'28 Days Later.ttf'$string);
        
    header("Content-type: image/png");
        
    imagepng($im);
        
    imagedestroy($im);
    Шрифт 28 Days Later.ttf заменить на свой
     
  13. Favorskij

    Favorskij New Member

    Joined:
    21 Jun 2009
    Messages:
    7
    Likes Received:
    0
    Reputations:
    -5
    Подкинте кто ни-будь Sitescaner1.1 Буду очень признателен. А то все ссылки устарели на данный софт
     
  14. phpdreamer

    phpdreamer Member

    Joined:
    26 Jul 2009
    Messages:
    522
    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.
  15. Zombi ****

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

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

    energ77 New Member

    Joined:
    17 Jul 2010
    Messages:
    49
    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 
    ''


     
    #1056 energ77, 9 May 2011
    Last edited: 9 May 2011
    1 person likes this.
  17. energ77

    energ77 New Member

    Joined:
    17 Jul 2010
    Messages:
    49
    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);    



     
  18. 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__
     
  19. energ77

    energ77 New Member

    Joined:
    17 Jul 2010
    Messages:
    49
    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;        

     
  20. bagatyr

    bagatyr New Member

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

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

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

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

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