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

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

  1. Gar|k

    Gar|k Moderator

    Joined:
    20 Mar 2009
    Messages:
    1,166
    Likes Received:
    266
    Reputations:
    82
    Вконтакте + last.fm

    2 LStr1ke есть такая замечательная вещь как Opera UserJS, Opera extensions (которые могут самообновляться с сайта, но нельзя работать с функциями сайта напрямую. С DOM можно). GreaseMonkey для FF

    Сам занимался изобретательством скриптов, но контактовцы очень часто меняют скрипты и дизайн. забил и пользую это
    https://addons.opera.com/addons/extensions/details/vkontakteru-downloader/0.1.9-7/?display=en

    Ну и раз тема прошла про контакт... мое
    Вконтакте + last.fm

    добавляет в контакт новую фишку - получение информации о исполнителе с last.fm (биография, стиль, похожие исполнители, рейтинг композиций) при нажатии на композицию
     
    _________________________
  2. avar

    avar Banned

    Joined:
    20 Jan 2011
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    Теперь не работает скрипт по скачиванию видео.

    Также интересует скрипт, который выдавал бы ID аудиозаписи, имеется ли такой? С учетом нововведений, чтобы рабочий был)
     
  3. toxis

    toxis Banned

    Joined:
    26 Feb 2011
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    Тоже интересуют данные скрипты, выложите, если у кого есть, буду благодарен :)
     
  4. art2222

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

    Joined:
    28 Apr 2008
    Messages:
    118
    Likes Received:
    57
    Reputations:
    10
    Скрипт движка упрощенной wiki
    За пару часов на коленке написал скрипт упрощенной вики (c ЧПУ).
    Основная функция - быстрое добавление страниц на сайт.
    Дизайн сменить легко, буквально поменять пару значений местами.

    Качать тут: http://zalil.ru/30612001
     
    #1044 art2222, 4 Mar 2011
    Last edited: 4 Mar 2011
  5. b3

    b3 Moderator

    Joined:
    5 Dec 2004
    Messages:
    1,987
    Likes Received:
    879
    Reputations:
    198
    Дамп в кодировке 1251, сам файл дампа в utf8 BOM, в индексе Хедер на utf8. Вы не могли определится с кодировкой?))
    ЗЫ Реврайты работают только если файлы в корне и еще:
    Code:
    Notice: Undefined index: logged in C:\wamp\www\index.php on line 14
    Включите вывод ошибок у себя на сервере.
    PHP:
    if (!$_SESSION['logged']) readfile('./template/nlpage.php');
    Хотел заценить скрипт но не вышло, все в каракулях, нужно везде соответствующую кодировку ставить. Завтра уже глянем.
     
    _________________________
  6. art2222

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

    Joined:
    28 Apr 2008
    Messages:
    118
    Likes Received:
    57
    Reputations:
    10
    Тут тупанул конечно. Перезалил файлик.

    Странно, у меня ничего не пишет (Denwer). Попробуйте заменить на
    PHP:
    if (!isset($_SESSION['logged']) || !$_SESSION['logged']) readfile('./template/nlpage.php');
     
  7. govorunkz

    govorunkz New Member

    Joined:
    5 Dec 2010
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    а есть рабочая тема этого скрипта?
     
  8. 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


    }  
    ?>
     
  9. ForumTUT

    ForumTUT New Member

    Joined:
    17 Feb 2011
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    Нужна программа (как то попадалась в сети, сейчас не могу найти),
    чтобы автоматизировать действия. Прогрмма запоминает действия и повторяет их.
    Подскажите, кто знает.
     
  10. 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
     
  11. GAiN

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

    Joined:
    2 Apr 2011
    Messages:
    2,543
    Likes Received:
    168
    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>
     
    #1051 GAiN, 3 Apr 2011
    Last edited: 3 Apr 2011
  12. GAiN

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

    Joined:
    2 Apr 2011
    Messages:
    2,543
    Likes Received:
    168
    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>
     
    #1052 GAiN, 3 Apr 2011
    Last edited: 3 Apr 2011
  13. GAiN

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

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

    PHP:
    <div style="width:190px; word-break:break-all">текст длинный<div>
     
  14. 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
    #               (hermes@all-yours.net), 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 'xxxx@yyyy.com';

    # 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  

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

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Shark04 логи апача делают то же самое
     
    _________________________
  16. 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;
     
  17. AGIMgal

    AGIMgal New Member

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

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,325
    Likes Received:
    1,199
    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 заменить на свой
     
  19. Favorskij

    Favorskij New Member

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