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); ?>
такой вопрос появился. при использовании например fgets($fh,1024) при получении страницы от сервера, скачивается не 1024 байта, а вся страница полностью.. как это можно исправить и почему так получается?
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 минут )Возможно ли реализовать многопоточность с пост запросами на пыхе?
посмари мож она у тя в цикле где то стоит , просто обычно используют что то типа while (!feof($fh)) { $file.=fgets($fh, 1024); }
5triker, смотри выше, он спрашивал какраз про кусок моего кода, а там все именно так и сделано. С пхп6 решил не заморачиваться(ругается на юникод) Лучше попробую распределять хэши по разным сервисам,тк скрипт медленный из-за задержки на каждом 10м хэше на md5.xek.cc
ОФФТОП Я как-то предлагал им сделать специальное API для этого. Сказали что сделают, но позже. Позже уже прошло, так и не дождался... ПО ТЕМЕ: Возможно проверка зависит от скорости твоего канала Многопоточности в php4,5 не существует!
Да не существует НО автору может помочь вот это http://www.seoblog.com.ua/2007/03/20/multiplexing-in-php/
у меня канал 7,5 Мбит/с... так что не в широте канала дело... может быть стоит какое-то ограничение на кол-во запросов за какое-то время.. хотя даже и не знаю.. тут надо разговаривать именно с лебедем и халкфилдом
переделывал скрипт и проверял что каждый 10й хэш обрабатывается долше и может не найтись даже если пароль имеется... Надо какнибудь до halkfrid'a достучаться, вдруг как можно решить проблему... ведь с этим скриптрм базу пополним бысрее.... Я по крайней мере при себе имею баз на 25к+ хэшей...
не могу понять почему не пашет скрипт 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 мож из-за него?
Попробуй 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; ?>
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)); ?>
хахахаха я понял проблему. ошибка тут: PHP: $out.="Connection: Close\r\n" Вконце надо ставить: \r\n\r\n Замени на: PHP: $out.="Connection: Close\r\n\r\n" Читай спецификацию!