Пара вопросов как написать скрипты

Discussion in 'PHP' started by OnlyOn, 17 Dec 2010.

  1. OnlyOn

    OnlyOn Banned

    Joined:
    18 Oct 2010
    Messages:
    252
    Likes Received:
    89
    Reputations:
    36
    PHP:

    1) Как посчитать количество строк в файле текстовом?
    2) Как сделать http-get запрос с time-limit на ответ в 1мс?
    3) Есть трудоемкий скрипт. нужно сделать так-чтобы во время его выполнения выводился статус.

    Дело такое: есть брут мд5. надо сделать так чтобы человеку выводился прогресс бар во время брута с статусом в процентах прохода по базе.

    Вот код самого брута:

    PHP:
    $hash $_POST["md5"];
    $base "base.txt";
    if (
    strlen($hash) == 32) {
    $file fopen($base"r");

    while(!
    feof($file)) {
    $pass fgets($file);
    $pass trim($pass);

    if (
    $hash == md5($pass)) {
    echo 
    "<blockquote class=\"style1\"><span><font color=black>".$hash."</font> <b>:</b> <font color=red><b>".$pass."</font></b></span></blockquote><br>";
    $hss 1;
    break;
    }

    }
    if (!isset(
    $hss)) {
    echo 
    "<b><font color=red>Your hash not found in our base</font></b>";
    }
    fclose ($file);
    } else {
    echo 
    "<b><font size=2 color=red>Your hash is not correct!</font></b><br>";
    }
    }
    Надо сделать так чтобы во время брута выводился статус прохода по базе в браузер. А если ответ найден, то прогресс бар останавливается и выводится ответ. Не знаю как такое сделать....
     
  2. Sharky

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

    Joined:
    1 May 2006
    Messages:
    487
    Likes Received:
    312
    Reputations:
    46
    1) count(file($file))
    2) через сокеты, таймаут выставляется ещё при коннекте
    3) смотри как я делал в любом из моих чекеров... обычный js
     
  3. Edward

    Edward Banned

    Joined:
    11 Feb 2010
    Messages:
    329
    Likes Received:
    21
    Reputations:
    -1
    PHP:
    <?php
    $file 
    array_map('trim'file(file.txt));
    $count count($file);
    echo 
    $count;
    ?>
     
  4. roxblnfk

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

    Joined:
    6 Feb 2010
    Messages:
    189
    Likes Received:
    42
    Reputations:
    19
    Если содержимое файла не нужно, но подразумевается большой объём файла, то лучше не использовать file()
    Подгружать файл кусками по несколько мегабайт и считать число вхождений "\n"
     
  5. b3

    b3 Moderator

    Joined:
    5 Dec 2004
    Messages:
    2,041
    Likes Received:
    933
    Reputations:
    199
    http://php.net/manual/en/function.fgets.php
    если данные не нужны, читайте строку по 1 байту и при каждой интерации инкрементируйте переменную $i в итоге получите кол-во строк.

    PS У вас проверка хэша не корректная, можно написать что угодно длинной 32 символа и строки будут сравниваться, сделайте проверку по регулярному выражению:
    PHP:
    if(!preg_match('#^[a-f0-9]{32}$#i'$hash)){
    die(
    'Неправильный формат хэша.');
    }
     
    _________________________
    #5 b3, 18 Dec 2010
    Last edited: 18 Dec 2010