[php] Новичкам: задаем вопросы

Discussion in 'PHP' started by _Great_, 26 May 2007.

Thread Status:
Not open for further replies.
  1. ruzzer

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

    Joined:
    29 Jul 2007
    Messages:
    43
    Likes Received:
    10
    Reputations:
    3
    Подскажите, как в php узнать время создания/изменения файла?
     
  2. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    Изменения - filemtime
     
    _________________________
  3. Jer1cho

    Jer1cho Member

    Joined:
    6 Jun 2008
    Messages:
    212
    Likes Received:
    65
    Reputations:
    10
    PHP:
    <?php
    $t 
    filectime('somefile.doc');
    echo 
    date('d-m-Y H:i:s'$t);
    ?>
    — время создания.
    Насчет изменения, не совсем уверен как, но может:
    PHP:
    <?php
    $t 
    fileatime('somefile.doc');
    echo 
    date('d-m-Y H:i:s'$t);
    ?>
     
  4. ruzzer

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

    Joined:
    29 Jul 2007
    Messages:
    43
    Likes Received:
    10
    Reputations:
    3
    спс. понял
     
  5. gisTy

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

    Joined:
    24 May 2008
    Messages:
    432
    Likes Received:
    160
    Reputations:
    27
    такой вопрос появился. при использовании например fgets($fh,1024) при получении страницы от сервера, скачивается не 1024 байта, а вся страница полностью.. как это можно исправить и почему так получается?
     
  6. SUBJECT617

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

    Joined:
    6 Aug 2007
    Messages:
    73
    Likes Received:
    34
    Reputations:
    -2
    PHP:
    <?php
    if ($argc<4)
    {
    echo 
    '========================================================================='."\n";
    echo 
    '========================================================================='."\n";
    echo 
    "Usage: $argv[0] <database> <found> <not_found>\n\n\n";
    echo 
    'Where database.txt - path to database with'." ':' ".'separator,'."\n".'found.txt - path to file, where you will see found hashes,'."\n";
    echo 
    'not_found.txt - path to file with hashes not found in md5.xek.cc database.'."\n";
    echo 
    '========================================================================='."\n";
    echo 
    '========================================================================='."\n";
    die;
    }
    $id 0;
    $filename "$argv[1]";
    $filename2 "$argv[2]";
    $filename3 "$argv[3]";
    $of2 fopen($filename2,"w+");
    $of3 fopen($filename3,"w+");
    $all count(file($filename));
    echo 
    "                               Database contains $all entries\n\n";
    function 
    post($data)

         
    $buf '';
         
    $fp = @fsockopen('md5.xek.cc',80);  
        if (
    $fp) { 
              
    fputs($fp'POST /index.php HTTP/1.1'."\n");  
              
    fputs($fp'Host: md5.xek.cc'."\n");  
              
    fputs($fp'Content-type: application/x-www-form-urlencoded'."\n");  
              
    fputs($fp'Content-length: ' strlen($data) . "\n");
              
    fputs($fp'User-Agent: PHP Script'."\n");  
              
    fputs($fp'Connection: close'."\n\n");  
              
    fputs($fp$data);                
              while(!
    feof($fp))
              
    $buf .= fread($fp,2048);
              
    preg_replace('/\W[b]\W[\n][0-9]{6}\W\W[b]\W/','',$buf);
              
    fclose($fp); 
              return 
    $buf;
         }
         else{ 
              return 
    'Server is not responding!'
         }
          
    }
    $content join('',file($filename));
    $fcontent preg_replace("/\n/",":",$content);
    preg_match_all('/[0-9a-z]{32}/',$fcontent$whatfound);
    while (@
    $whatfound[0][$id] != '')
    {
    $hash $whatfound[0][$id];
    $page post("hash=$hash&act=find");
    if (
    preg_match('/\W[b]\W(.{3,30})\W\W[b]\W/',$page,$matches))
    {
    $pass $matches[1];
    fputs($of2,"$id : $pass\n");
    }
    else
    {
    fputs($of3,"$id : $hash\n");
    }
    $id += 1;
    }
    @
    fclose($of1);
    @
    fclose($of2);
    @
    fclose($of3);
    echo 
    '                                          Done!'."\n";
    $found count(file($filename2));
    echo 
    '                               ++++++++++++++++++++++++++'."\n";
    echo 
    "                               ++$found of $all hashes found!++"."\n";
    echo 
    '                               ++++++++++++++++++++++++++'."\n\n";
    ?>

    Этотскрипт вообще никак не ускорить?(Он проверяет базу из 1к записей аж 40 минут :( )Возможно ли реализовать многопоточность с пост запросами на пыхе?
     
  7. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    Попробуй использовать fork или юзай php6
     
    _________________________
    2 people like this.
  8. 5triker

    5triker Elder - Старейшина

    Joined:
    5 Apr 2007
    Messages:
    62
    Likes Received:
    41
    Reputations:
    1
    посмари мож она у тя в цикле где то стоит ,
    просто обычно используют что то типа
    while (!feof($fh)) {
    $file.=fgets($fh, 1024);
    }
     
  9. SUBJECT617

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

    Joined:
    6 Aug 2007
    Messages:
    73
    Likes Received:
    34
    Reputations:
    -2
    5triker, смотри выше, он спрашивал какраз про кусок моего кода, а там все именно так и сделано.

    С пхп6 решил не заморачиваться(ругается на юникод) Лучше попробую распределять хэши по разным сервисам,тк скрипт медленный из-за задержки на каждом 10м хэше на md5.xek.cc
     
  10. n3m0

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

    Joined:
    11 May 2007
    Messages:
    133
    Likes Received:
    92
    Reputations:
    11
    ОФФТОП
    Я как-то предлагал им сделать специальное API для этого. Сказали что сделают, но позже. Позже уже прошло, так и не дождался...

    ПО ТЕМЕ:
    Возможно проверка зависит от скорости твоего канала
    Многопоточности в php4,5 не существует!
     
  11. EST a1ien

    EST a1ien Elder - Старейшина

    Joined:
    2 Apr 2006
    Messages:
    249
    Likes Received:
    48
    Reputations:
    16
    Да не существует НО автору может помочь вот это
    http://www.seoblog.com.ua/2007/03/20/multiplexing-in-php/
     
  12. gisTy

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

    Joined:
    24 May 2008
    Messages:
    432
    Likes Received:
    160
    Reputations:
    27
    у меня канал 7,5 Мбит/с... так что не в широте канала дело... может быть стоит какое-то ограничение на кол-во запросов за какое-то время.. хотя даже и не знаю.. тут надо разговаривать именно с лебедем и халкфилдом
     
  13. SUBJECT617

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

    Joined:
    6 Aug 2007
    Messages:
    73
    Likes Received:
    34
    Reputations:
    -2
    переделывал скрипт и проверял что каждый 10й хэш обрабатывается долше и может не найтись даже если пароль имеется... Надо какнибудь до halkfrid'a достучаться, вдруг как можно решить проблему... ведь с этим скриптрм базу пополним бысрее.... Я по крайней мере при себе имею баз на 25к+ хэшей...
     
  14. Vid0k

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

    Joined:
    24 Dec 2007
    Messages:
    393
    Likes Received:
    125
    Reputations:
    13
    не могу понять почему не пашет скрипт
    PHP:
    <?
    set_time_limit(0);
    $out ="GET / HTTP/1.1\r\n";
    $out.="User-Agent: Opera/9.51 (Windows NT 5.1; U; ru)\r\n";
    $out.="Host: host.ru\r\n";
    $out.="Accept: text/html,\r\n";
    $out.="Connection: Close\r\n";

    $fp=fsockopen("host.ru",80,$errno,$errstr);     
    fwrite($fp,$out); 
    $ans='';
    while(!
    feof($fp))

        
    $ans .=fgets($fp,256);    
    }
    fclose($fp);
    echo 
    $ans;
    ?>
    уже все что можно попробывал через inetcrack запрос проходит а здесь хрен стоит topserver
    мож из-за него?
     
  15. BlackSun

    BlackSun Banned

    Joined:
    1 Apr 2007
    Messages:
    989
    Likes Received:
    1,168
    Reputations:
    446
    Попробуй

    PHP:
    <? 
    set_time_limit(0); 
    $out ="GET / HTTP/1.1\r\n"
    $out.="User-Agent: Opera/9.51 (Windows NT 5.1; U; ru)\r\n"
    $out.="Host: host.ru\r\n"
    $out.="Accept: text/html\r\n\r\n"

    $fp=fsockopen("host.ru",80,$errno,$errstr);      
    fputs($fp,$out);  
    $ans=''
    while(!
    feof($fp)) 
    {  
        
    $ans .=fgets($fp,256);     

    fclose($fp); 
    echo 
    $ans
    ?>
     
  16. k1b0rg

    k1b0rg Тут может быть ваша реклама.

    Joined:
    30 Jul 2005
    Messages:
    1,182
    Likes Received:
    399
    Reputations:
    479
    PHP:
    <?
    $fp=fsockopen("www.host.ru",80);
    fwrite($fp,"GET / HTTP/1.0\r\n");
    fwrite($fp,"Host: www.host.ru\r\n\r\n");
    while(
    $ans[] = fgets($fp));
    fclose($fp);
    echo 
    trim(implode('',$ans)); 
    ?>
     
    1 person likes this.
  17. Vid0k

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

    Joined:
    24 Dec 2007
    Messages:
    393
    Likes Received:
    125
    Reputations:
    13
    спасибо но почему мой код не работает?
     
  18. Vid0k

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

    Joined:
    24 Dec 2007
    Messages:
    393
    Likes Received:
    125
    Reputations:
    13
    спс за ответы на мой скрипт все равно не пашет(((
     
    #4098 Vid0k, 13 Jul 2008
    Last edited: 13 Jul 2008
  19. Chaak

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

    Joined:
    1 Jun 2008
    Messages:
    1,059
    Likes Received:
    1,067
    Reputations:
    80
    хахахаха я понял проблему. ошибка тут:
    PHP:
    $out.="Connection: Close\r\n"
    Вконце надо ставить:
    \r\n\r\n
    Замени на:
    PHP:
    $out.="Connection: Close\r\n\r\n"
    Читай спецификацию!
     
  20. Vid0k

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

    Joined:
    24 Dec 2007
    Messages:
    393
    Likes Received:
    125
    Reputations:
    13
    ппц я 3 часа мучался из-за этой ошибки чуть было компьютер не взорвал
     
    2 people like this.
Thread Status:
Not open for further replies.