Вообщем сделал так: PHP: // Функция получения 1000 паролей из базы начиная с номера=id function get_pass($id) { global $db_table; global $id; $query = "SELECT `passwd` from ".$db_table." WHERE `passwd` IS NOT NULL limit ".$id.",1000"; $r=mysql_query($query); if($r) { while($db_pass = mysql_fetch_array($r)) { $get_pass[$id]=$db_pass['passwd']."\n"; $id++; } } else { echo "<p><b>Error: ".mysql_error()."</b><p>"; $get_pass=false; } return $get_pass; } Читаем из базы 1000 паролей, начиная с записи $id и возвращаем в виде массива $get_pass (1000 записей) Вызываем функцию в цикле: PHP: <? include('conf.php'); include('function.php'); ignore_user_abort(1); set_time_limit(0); $fd = fopen("./pass/dict.txt", 'w'); $id = 0; $pass = array('типа..', 'пароль1', 'пароль2'); while($pass) { $pass=get_pass($id); $string=implode($pass); fwrite($fd, $string); // $id=$id+1000; - тут не надо! $id - глобальная! } echo "в файл выгружено: ".$id." паролей <br>"; fclose($fd); ?> Выгрузилось реально 115000 паролей, хотя написал что 230000.... хм... попробовать по 2 тыс. выгружать? Изминил лимит на 2000 пишет: Но реально в файле в два раза меньше, где ошибка? А понял! не надо второй раз 1000 прибавлять $id глобальная, а так пропуск по 1000 шт. получается, она инкрементится в функции и её значение не сбрасывается... Щас исправлю...
$id увеличивается в этом цикле тысячу раз на единицу: Code: while($db_pass = mysql_fetch_array($r)) { $get_pass[$id]=$db_pass['passwd']."\n"; $id++; } и здесь ещё на тысячу: Code: while($pass) { $pass=get_pass($id); $string=implode($pass); fwrite($fd, $string); $id=$id+1000; } P.S. если не делать $id глобальной переменной, должно как надо работать
привет, помогите плз. PHP: $cr=curl_init("http://site.ru/"); curl_setopt($cr, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)"); curl_setopt($cr, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0); curl_setopt($cr, CURLOPT_TIMEOUT, 20); curl_setopt($cr, CURLOPT_HEADER, 1); curl_setopt($cr, CURLOPT_POSTFIELDS, "param=1¶m2=2¶m3=3"); curl_setopt($cr, CURLOPT_RETURNTRANSFER, 1); curl_setopt($cr, CURLOPT_REFERER, "http://MTS-EXpress"); curl_setopt($cr,CURLOPT_PROXY,$proxy); $r = curl_exec($cr); curl_close($cr); echo "$r"; $r = curl_exec($cr); // это как я понял в переменной он напускает сам пост-запрос. Но мне нужно, что-то вроде выдиралки... Посылаю пост-запрос, скрипт ищет любое указанное мною слово из полученного html кода по пост-запросу... на перле выглядит так: PHP: $ua = LWP::UserAgent->new; my $req = new HTTP::Request POST => "http://site.ru/index.php"; $req->user_agent("Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MRA 4.8 (build 01709); .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)"); $req->content_type("application/x-www-form-urlencoded"); $req->content("a=1&b=1&c=3"); my $res = $ua->request($req); if ($res->content =~ /ПОИСК УКАЗАННОГО СЛОВА/) { print "да, данное слово есть"; } else { print "нету такого слова"; } Вот, собственно, как мне этот скрипт на perl переписать на php
В PHP есть регуляный поиск... Регулярки такие же как и в Perl'е что тебе мешает им воспользоваться? Вот пример: preg_match('/(ПОИСК УКАЗАННОГО СЛОВА)/', $matches); echo $matches[1];
спасибо, помогло. PHP: $r = curl_exec($cr); curl_close($cr); $s = "echo '$r'"; потом условие if ( preg_match ( "/СЛОВО/i" , "$s" )) {} else {}
Привет! у меня вопрос... я пытаюсь написать брутер у меня массив PHP: $a = array(a..Z); И максимальная длина пароля скажем $len = 3 тоесть $a[].$a[].$a[] как сделать так чтоб например красный сделал полный круг тоесть от "A" до "Z" а зелёного и синего быть не должно .. потом после полного круга к зелёному добавится +1 тоесть из ничего станет "A" а красный опять сделает полный круг и добавит зелёному ещё +1 и теперь будет "B"(В зелёном) ну получается как в часах секунды идут быстро минуты медлено а часы ещё медленее Надеюсь вы меня поняли=)
В php так тоже можно Code: <pre> <?php $str = 'aaa'; $i = 100; while($i--) { echo $str++, "\n"; } ?> </pre>
Привет! Ребят помогите пожалуйста, есть текст ну скажем на странице banner.html, а мне нужно что б этот текст стал картинкой такое возможно сделать средставми php+GD?
дело в том что я в php не совсем силён, может наваяите примерный код если не трудно или ткнёте носом в чтиво какое по сабжу на стр banner.htm текст всегда разный ибо там выводится результат парсинга другой стр. з.ы хочу сделать типа динамический банер
HTML: <hr>Сегодня в России одновременно прекратили работу отделения Британского совета при консульствах в Санкт-Петербурге и Екатеринбурге...<span class=laln> выдернуть нужно:
PHP: <?php $a =file_get_contents("http://blablabla.com/banner.html"); preg_match ("#<hr>]*>.*</hr>]*>#isU", $a, $regs); echo $regs[0]; Пример парсит текст между тегами <hr>text</hr> Хотя, ты не полный текст дал, может не работать.
PHP: $string = "<hr>Сегодня в России одновременно прекратили работу отделения Британского совета при консульствах в Санкт-Петербурге и Екатеринбурге...<span class=laln>"; $string = strip_tags($string);
---------------------------- PHP: <?php $a =file_get_contents("http://blablabla.com/banner.html"); preg_match ("#<hr>]*>.*</hr>]*>#isU", $a, $regs); header ("Content-type: image/png"); $im = @imagecreatetruecolor(120, 20) or die("Cannot Initialize new GD image stream"); $text_color = imagecolorallocate($im, 233, 14, 91); imagestring($im, 1, 5, 5, "'.$regs[0];.'", $text_color); imagepng($im); imagedestroy($im); ?> Выведет текст на чёрном фоне. http://ua.php.net/manual/ru/function.imagecreatetruecolor.php