ок) просто под рукой попался... думаю может кому надо! свои обязательно выложу... будет время, сейчас просто занят над одним делом!!!
PHP: <? function keys($url){ $openn=file_get_contents($url); preg_match_all( '/words" content=(.*)>/iUs' , $openn,$key); sleep(1); $key[0][0] = str_replace('words" content=', "", $key[0][0]); $key[0][0] = str_replace('"', "", $key[0][0]); $key[0][0] = str_replace('>', "", $key[0][0]); $key[0][0] = str_replace('/', "", $key[0][0]); $fp=fopen("base.txt","ab"); fwrite($fp,$url."=".$key[0][0].'\n'); fclose($fp); } keys("http://mail.ru/"); ?> Скрипт выдерает из страницы ключевые слова в мета. И сохраняет их в базе... Могли бы переделать точно также только урл ссылки выдерает...
Скрипт чекает короткие домены в зонах .ru, .su PHP: <? error_reporting (0); set_time_limit (0); #-------------------------------------* # short domain checker # by NNNS {icq: 474374} #-------------------------------------* ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>short domain checker by NNNS</title> <style type="text/css"> <!-- body,td,th { } .titler { font-family: Georgia, "Times New Roman", Times, serif; font-size: 24px; color: #666666; border-bottom-width: 1px; border-bottom-style: dashed; border-bottom-color: #3399FF; } .error { font-family: Arial, Helvetica, sans-serif; font-size: 12px; color: #B0B0B0; border-bottom-width: 1px; border-bottom-style: dashed; border-bottom-color: #E25053; text-align: center; } .titler:hover { color: #3399FF; border-bottom-color: #666666; } .edit { font-family: Georgia, "Times New Roman", Times, serif; font-size: 12px; color: #3399FF; border: 1px solid #E8E8E8; height: 16px; width: 50px; text-align: center; margin-right: 2px; } .true { font-size: 12px; color: #9ABB26; font-family: Arial, Helvetica, sans-serif; } .text { font-family: Georgia, "Times New Roman", Times, serif; color: #B0B0B0; font-size: 12px; } .buttoncheg { font-family: Georgia, "Times New Roman", Times, serif; font-size: 12px; color: #B0B0B0; border: 1px solid #E8E8E8; background-color: #FFFFFF; height: 20px; width: 50px; } .false { font-size: 12px; color: #CC090E; font-family: Arial, Helvetica, sans-serif; } .tables { font-family: Arial, Helvetica, sans-serif; font-size: 12px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #ECF5FF; } .text2 { font-family: Arial, Helvetica, sans-serif; color: #B0B0B0; font-size: 12px; } .text3 { font-family: Arial, Helvetica, sans-serif; color: #3399FF; font-size: 12px; } .selecte { font-family: Georgia, "Times New Roman", Times, serif; font-size: 10px; color: #3399FF; border: 1px solid #E8E8E8; height: 18px; width: 100px; text-align: center; margin-right: 2px; } .edit2 { font-family: Georgia, "Times New Roman", Times, serif; font-size: 12px; color: #3399FF; border: 1px solid #E8E8E8; height: 16px; width: 75px; text-align: center; margin-right: 2px; } .selecte2 { font-family: Georgia, "Times New Roman", Times, serif; font-size: 10px; color: #3399FF; border: 1px solid #E8E8E8; height: 18px; width: 40px; text-align: center; margin-right: 2px; } --> </style> </head> <body><form method="post" action=""> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td align="center" valign="middle"><span class="titler">short domain checker</span><br /> <br /> </td> </tr> <tr> <td align="center" valign="middle"><table border="0" cellpadding="0" cellspacing="0"> <tr> <td valign="middle"><span class="text">Длина домена</span> </td> <td width="50" valign="middle"><input name="number" type="text" class="edit" id="number" value="<?=$number;?>" /></td> <td valign="middle"><span class="text"> Количество доменов </span></td> <td width="50" valign="middle"><input name="domain_nums" type="text" class="edit" id="domain_nums" value="<?=$domain_nums;?>" /></td> <td valign="middle" class="text">Тип домена </td> <td valign="middle"><select name="domtype" class="selecte"> <option value="1">Только буквы</option> <option value="2">Только цифры</option> <option value="0">Буквы и цифры</option> </select> </td> <td valign="middle" class="text">Зона</td> <td valign="middle"> <select name="zone" id="zone" class="selecte2"> <option value="1">.ru</option> <option value="2">.su</option> </select> </label></td> <td width="50" valign="middle"><input name="submit" type="submit" class="buttoncheg" id="submit" value="Check" /></td> </tr> </table> <br /></td> </tr> </table> </form> <?php $number = intval($_POST['number']); $domain_nums = intval($_POST['domain_nums']); $domtype = intval($_POST['domtype']); $zone = intval($_POST['zone']); if ($zone == '1') {$zone = ".ru";} if ($zone == '2') {$zone = ".su";} $whois = "whois.ripn.ru"; $not_found = "No entries found"; if ($number == '') {$number = 5;} if ($number < '0') {$number = 5;} if ($number == '2') {$number = 3;} if ($number > 20) {$number = 20;} if ($domain_nums == '') {$domain_nums = 3;} if ($domain_nums < '0') {$domain_nums = 3;} function generate_domain($number, $type) { if ($type == '0') { $arr = array( 'a','b','c','d','e','f', 'g','h','i','j','k','l', 'm','n','o','p','r','s', 't','u','v','x','y','z', '1','2','3','4','5','6', '7','8','9','0'); } if ($type == '1') { $arr = array( 'a','b','c','d','e','f', 'g','h','i','j','k','l', 'm','n','o','p','r','s', 't','u','v','x','y','z'); } if ($type == '2') { $arr = array( '1','2','3','4', '5','6','7','8', '9','0'); } for($i = 0; $i < $number; $i++) { $index = rand(0, count($arr) - 1); $dom .= $arr[$index]; } return $dom; } if($_POST['submit']) { echo "<center><table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"tables\"> <tr> <td width=\"100\" valign=\"middle\" class=\"text2\">Домен</td> <td width=\"70\" valign=\"middle\" class=\"text3\">Годен до</td> <td width=\"150\" valign=\"middle\" class=\"text2\">Хост</td> <td width=\"70\" valign=\"middle\" class=\"text3\">Статус</td> </tr> </table></center>"; for($i = 0; $i < $domain_nums; $i++) { $domain = generate_domain($number,$domtype); $domain = $domain.$zone; $fp = fsockopen($whois, 43); fputs($fp, "$domain\r\n"); $str = ""; while(!feof($fp)) { $str .= fgets($fp,128); } fclose($fp); if(preg_match("/Please try to connect later/is",$str)) { die("<br><center><span class =\"error\" >Превышен лимит запросов к ".$whois." :(</span></center></body></html>"); } if(!preg_match("/".$not_found."/is", $str)) { preg_match("/paid-till:(.*?)\\n/is", $str, $edate); preg_match("/nserver:(.*?)\\n/is", $str, $serv); $edate = $edate[1]; $serv = str_replace("ns.", "",$serv[1]); $serv = str_replace("ns1.", "",$serv); $serv = str_replace("ns2.", "",$serv); $serv = str_replace("ns3.", "",$serv); $serv = str_replace("ns4.", "",$serv); $serv = str_replace("ns0.", "",$serv); $status = "<span class =\"false\">Занят</span><br>"; } else { $edate = " - "; $serv = " - "; $status = "<span class =\"true\">Свободен</span><br>"; } echo "<center><table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"tables\"> <tr> <td width=\"100\" valign=\"middle\" class=\"text2\">$domain</td> <td width=\"70\" valign=\"middle\" class=\"text3\">$edate</td> <td width=\"150\" valign=\"middle\" class=\"text2\">$serv</td> <td width=\"70\" valign=\"middle\">$status</td> </tr> </table></center>"; ob_flush(); flush(); } } ?> </body> </html>
Приглашалка в группу (ВКонтакте.ру) PHP: <? #&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& #& Vkontakte.ru group inviter #& By NNNS {icq: 474374} #&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& error_reporting(0); set_time_limit(0); # Всякие переменные $user_agent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11"; $begin = intval($_POST['begin']); $end = intval($_POST['end']); $gid = intval($_POST['gid']); $email = strip_tags($_POST['email'], ""); $pass = strip_tags($_POST['pass'], ""); if($begin == '') {$begin = "0";} if($end == '') {$end = "0";} if($gid == '') {$gid = "0";} ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /> <title>ВКонтакте инвайтер (С) NNNS</title> <style type="text/css"> <!-- .tablichko { font-family: Arial, Helvetica, sans-serif; background-color: #F7FCFD; border-top-width: 1px; border-bottom-width: 1px; border-top-style: solid; border-bottom-style: solid; border-top-color: #E0F3F8; border-bottom-color: #E0F3F8; height: 100px; } .tit { font-family: Georgia, "Times New Roman", Times, serif; font-size: 24px; color: #1C6679; } .comment { font-family: Arial, Helvetica, sans-serif; font-size: 10px; color: #289AB7; } .inputko { font-size: 12px; color: #289AB7; height: 16px; text-align: center; border-top-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: none; border-bottom-style: solid; border-left-style: solid; border-top-color: #E0F3F8; border-left-color: #E0F3F8; border-bottom-width: 1px; border-bottom-color: #E0F3F8; } .inputko:focus { background-color: #E8F5F9; } .inputko2:focus { background-color: #E8F5F9; } .inputko3:focus { background-color: #FFF; } .buttoncheg { color: #FFFFFF; background-color: #1C6679; border: 1px solid #E0F3F8; height: 20px; font-size: 12px; width: 80px; } .inputko2 { font-size: 12px; color: #289AB7; height: 16px; text-align: center; border-top-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: none; border-top-color: #E0F3F8; border-bottom-width: 1px; border-bottom-color: #E0F3F8; border-right-width: 1px; border-right-color: #E0F3F8; } .inputko3 { font-size: 12px; color: #289AB7; height: 16px; text-align: center; width: 78px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: none; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-right-color: #E0F3F8; border-bottom-color: #E0F3F8; border-left-color: #E0F3F8; background-color: #F7FCFD; } .vtab { color: #48BAD7; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #DFF3F9; font-size: 12px; font-family: Arial, Helvetica, sans-serif; } --> </style> </head> <body> <form method="post" action=""> <table width="100%" border="0" cellpadding="0" cellspacing="0" class="tablichko"> <tr> <td align="center" valign="middle"><span class="tit"> ВКонтакте инвайтер<br /> </span> <table border="0" cellpadding="0" cellspacing="0"> <tr> <td colspan="2" align="center" valign="middle" bgcolor="#FDFFFF" class="comment">Диапазон пользователей (с/до) </td> <td valign="top"> </td> <td width="100" align="center" valign="middle" bgcolor="#FDFFFF" class="comment">email </td> <td width="100" align="center" valign="middle" bgcolor="#FDFFFF" class="comment">пароль</td> </tr> <tr> <td valign="top"><input name="begin" type="text" class="inputko" id="begin" value="<?=$begin;?>" /></td> <td valign="top"><input name="end" type="text" class="inputko" id="end" value="<?=$end;?>" /></td> <td valign="top"><input name="submit" type="submit" class="buttoncheg" id="submit" value="Пригласить" /></td> <td width="100" valign="top"><input name="email" type="text" class="inputko2" id="email" value="<?=$email;?>" /></td> <td width="100" valign="top"><input name="pass" type="text" class="inputko2" id="pass" value="<?=$pass;?>" /></td> </tr> <tr> <td valign="top"> </td> <td align="right" valign="middle"><span class="comment">ID группы ></span></td> <td align="center" valign="middle" bgcolor="#FDFFFF" class="error"><input name="gid" type="text" class="inputko3" id="gid" value="<?=$gid;?>" /></td> <td width="200" colspan="2" valign="middle"> </td> </tr> </table></td> </tr> </table> </form> <br /> <?php if ($_POST['submit']) { # Соединяемся с сервером ВКонтакте.ру $fp=fsockopen("vkontakte.ru",80,$errno,$errstr,10); if (!fp) {die();} # Авторизуемся $out = "GET /login.php?email=".$email."&pass=".$pass." HTTP/1.0\r\n"; $out .= "Host: vkontakte.ru\r\n"; $out .= "User-Agent: ".$user_agent."\r\n"; $out .= "Cookie: income=1\r\n"; $out .= "Content-Type:text/xml; charset=windows-1251\r\n\r\n"; fwrite($fp,$out); $ans=''; while(!feof($fp)) { $ans.=fgets($fp,128); } fclose($fp); # вытаскиваем кукисы из ответа сервера preg_match("/revalidate(.*?)Location/is", $ans, $cookies); $cookies = str_replace("Set-Cookie: ", "",$cookies[1]); preg_match("/remixchk(.*?);/is", $cookies, $cook1); preg_match("/remixmid(.*?);/is", $cookies, $cook2); preg_match("/remixemail(.*?);/is", $cookies, $cook3); preg_match("/remixpass(.*?);/is", $cookies, $cook4); $cook1 = "remixchk=".$cook1[1]."; "; $cook2 = "remixmid=".$cook2[1]."; "; $cook3 = "remixemail=".$cook3[1]."; "; $cook4 = "remixpass=".$cook4[1]."; "; $acook = $cook1.$cook2.$cook3.$cook4; $acook = str_replace ("==", "=", $acook); # Открываем новое соединение for($i=$begin;$i<$end;$i++) { $fp=fsockopen("vkontakte.ru",80,$errno,$errstr,10); $out = "GET /groups.php?act=ajaxinv&gid=".$gid."&id=".$i." HTTP/1.0\r\n"; $out .= "Host: vkontakte.ru\r\n"; $out .= "User-Agent: ".$user_agent."\r\n"; $out .= "Cookie: ".$acook."\r\n\r\n"; fwrite($fp, $out); $ans=''; while(!feof($fp)) { $ans.=fgets($fp,128); } # достаем результат preg_match("/>(.*?)</is", $ans, $result); # Выводим его echo "<center><table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"vtab\"> <tr> <td width=\"70\" valign=\"middle\">".$i."</td> <td width=\"350\" valign=\"middle\">".$result[1]."</td> </tr> </table><center>"; ob_flush(); flush(); fclose($fp); sleep(1); } } ?> </body> </html>
Подбор пароля до 16 символов [a-z][A-Z][0-9] криво написаный! под md5 но легко переделать под любую другую функцию Пароли больше 5 символов подбирать не советую хотя и 5 это перебор... Практиковался в php PHP: <? ini_set("max_execution_time", 99999999); $hash = "2fad8504df72a9e32bdd6f9c2611900d"; $a = array(); $b = array(); $c = array(); $d = array(); for($i=0; $i <= 9; $i++) { $a[] = $i;} for($i=97; $i <= 122; $i++) { $b[] = chr($i);} for($i=65; $i <= 90; $i++) { $c[] = chr($i);} $d = array_merge($a, $b, $c); for ($e=0, $f=(-1), $g=(-1), $h=(-1), $i=(-1), $j=(-1), $k=(-1), $l=(-1), $m=(-1), $n=(-1), $o=(-1), $p=(-1), $r=(-1), $s=(-1), $t=(-1), $u=(-1); $e <= 61; $e++) { @$cde = $d[$e].$d[$f].$d[$g].$d[$h].$d[$i].$d[$j].$d[$k].$d[$l].$d[$m].$d[$n].$d[$o].$d[$p].$d[$r].$d[$s].$d[$t].$d[$u]; if ($hash == md5($cde)) {echo $cde; break;} if($e==61) {$f++; $e=(-1);} if($f==62) {$g++; $f=0;} if($g==62) {$h++; $g=0;} if($h==62) {$i++; $h=0;} if($i==62) {$j++; $i=0;} if($j==62) {$k++; $j=0;} if($k==62) {$l++; $k=0;} if($l==62) {$m++; $l=0;} if($m==62) {$n++; $m=0;} if($n==62) {$o++; $n=0;} if($o==62) {$p++; $o=0;} if($p==62) {$r++; $p=0;} if($r==62) {$s++; $r=0;} if($s==62) {$t++; $s=0;} if($t==62) {$u++; $t=0;} if($u == 62) {echo "Не найдено"; break;} } ?>
Еще одна мегахрень от меня, которую я написал коротая время на уроке литературы Функция определяет статус пользователя MRA (Mail.ru Agent) PHP: <?php $mail = $_SERVER['QUERY_STRING']; function mra_status ($mail) { $offline = "a46f044e175e9b1b28c8d9a9f66f4495"; $online = "b3b974fe114d5fba50b9658641a7a393"; $away = "89d1bfcdbf238e7faa6aeb278c27b676"; $status = md5_file("http://status.mail.ru/?".$mail); $mra_status = ""; if ($status == $offline) { $mra_status = "offline"; } else { if ($status == $online) { $mra_status = "online"; } else { if ($status == $away) { $mra_status = "away"; } } } return $mra_status; } echo mra_status($mail); ?> Пример : http://nnns.ru/scripts/mra/?[Ваш_email]
Здравствуйте!!! А скажите пожалуйста по поводу Приглашалки в группу vkontakte. Я залил на хостинг, заполняю все поля, нажимаю пригласить а мне в ответ Невозможно отобразить страницу. Ответьте пожалуйста, чего нада сделать?
ВКонтакте АККчекер 0.1 Скрипт чекает аккаунты Вконтакте.ру на валидность. Для работы требуется хост с поддержкой сокетов. Залейте скрипт на хостинг. Создайте файл "valid.txt" поставьте на него права на запись. В файл "accounts.txt" вставьте список аккаунтов. "E-mail;Pass" PHP: <?php #&-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-| #&------------------------------- #& ВКонтакте АККчекер 0.1 #& VKontakte ACCchecker 0.1 #& By NNNS::[icq: 474374] #& All lefts reserved. #&------------------------------- #&-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-| # Отключаем ограничение на время выполнения скрипта set_time_limit(0); # User Agent $user_agent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.12"; # Файл с аккаунтами $acclist = "accounts.txt"; # Файл с валидными аккаунтами $vallist = "valid.txt"; # Помещаем аккаунты в массив $account = file($acclist); # Рабочие аккаунты $valid = 0; # Нерабочие аккаунты $invalid = 0; function vkCheck($email,$pass) { # Открываем сокет $fp=fsockopen("vkontakte.ru",80,$errno,$errstr,10); # Отправляем заголовки $out = "GET /login.php?email=".$email."&pass=".$pass." HTTP/1.0\r\n"; $out .= "Host: vkontakte.ru\r\n"; $out .= "User-Agent: ".$user_agent."\r\n"; $out .= "Cookie: income=1\r\n"; $out .= "Content-Type:text/xml; charset=windows-1251\r\n\r\n"; fwrite($fp,$out); # Записываем ответ сервера в переменную $ans=fgets($fp,128); # Закрываем сокет fclose($fp); # Если 302 найден, значит акк валидный if(preg_match("/\b302 Found\b/is", $ans)) { return true; } else { return false; } } # Запускаем цикл for($i=0;$i<count($account);$i++) { # Удаляем симолы перевода строки $caccaunt = str_replace("\r\n","",$account[$i]); # Разбиваем на e-mail и пароль list($email,$pass) = explode(";",$caccaunt); # Вызываем функцию проверки аккаунта $answer = vkCheck($email,$pass); # Если аккаунт рабочий, записываем его в файл if ($answer == true) { $fd = fopen($vallist,"a+"); fputs($fd,$account[$i]); fclose($fd); $valid++; } else { $invalid++; } } # Выводим результат echo "Рабочих аккаунтов: ".$valid."<br>Нерабочих аккаутов: ".$invalid; ?>
все таки выложил и хорошо... на благо общества , кста я юзал его - работает как часы +1. Только когда файл accounts.txt перегружаешь большим количеством аков результат не выдает, но все равно записывает(просто скачиваю valid.txt и все...
Хелпер, Мне кажется, ты недопонял конструкцию switch. PHP: switch ($num3) { case "+"; echo $num1 + $num2; } switch ($num3) { case "-"; echo $num1 - $num2; } switch ($num3) { case "*"; echo $num1 * $num2; } switch ($num3) { case "/"; echo $num1 / $num2; } PHP: switch ($num3) { case '+': echo $num1 + $num2; break; case '-': echo $num1 - $num2; break; case '*': echo $num1 * $num2; break; case '/': echo $num1 / $num2; break; default: echo 'Какой-то левый параметр.'; }
Самый трушный мой скрипт от скуки, это мне совсем нечего было делать PHP: <?php function genStr($min,$max) { $glas = 'уеыаоэяию'; #гласный букафке $soglas = 'цкнгшщзхфвпрлджчсмтб'; #сагласные $to = rand($min,$max); $ret = ''; for($i=0;$i<$to;$i++) { if($i%2) $ret .= $glas[rand(0,strlen($glas)-1)]; else $ret .= $soglas[rand(0,strlen($soglas)-1)]; } $ret[0] = strtoupper($ret[0]); return $ret; } ?> Генерит иногда оч ржачные слова genStr(мин.букавок, максимум); Запускаем, прёмся PHP: <?php for($i=0;$i<10;$i++) { echo genStr(3,10).'<br>'; } ?>
Действительно нечего было делать, написал парсер башорга, умеет выполнять все функции с ним Вот класс для работы с башоргом: http://rapidshare.com/files/104604548/bash.php.html (на рапиду выложил, т.к. тут исходники искажаются немного) Вот доки по классу PHP: Все переменные - private, инфо просто для ознакомления $bash_url - url страницы башорга $bash_text - текст какой-либо из страниц башорга $bash_arr - массив пропарсенных цитат $bash_type - страница, которую читаем $bash_page - номер страницы, которую читаем $bash_max_page - максимальная страница $bash_curr_page - текущая страница $bash_last_quote - последняя прочитанная цитата $bash_q_num - номер прочитанной цитаты $bash_approved - число добавленных за день цитат Методы класса Bash($url='bash.org.ru') - конструктор класса, $url - адрес башорга:) get_bash_text() - public, возвращает весь полученный функцией bash_read контент get_bash_arr() - public, возвращает весь полученный функцией bash_read контент bash_read($typ=0,$page=1,$stext='') - public, главная функция, читает башорг $typ==0 - читает главную страницу $typ==1 - читает страницу "по рейтингу", можно указать $page - номер страницы $typ==2 - читает бездну $typ==3 - читает топ бездны $typ==4 - читает "случайные" $typ==5 - читает конкретную цитату с номером $page $typ==6 - ищет цитаты среди добавленных, нужно задать $stext - строка поиска $typ==7 - ищет цитаты в бездне, нужно задать $stext - строка поиска $typ==8 - читает страницу "по дате", можно указать $page - номер страницы bash_socket($service_uri,$ref='',$method='GET') - private, работает с сокетами bash_parse() - public, парсит полученную с помощью bash_read страницу Если были считаны главная/"по рейтингу"/"случайные"/конкретная цитата по номеру/"по дате"/был произведён поиск в добавленных, то возвращается массив array('id','rating','approved','date','cite'), где id - массив номеров цитат, rating - массив и рейтингов, approved - массив ников тех, кто добавлял цитаты, date - массив дат и времён добавления, cite - массив текстов цитат. Кроме того, если были считаны страницы "по рейтингу"/"по дате", функция определяет текущую страницу и максимальное число страниц, их можно получить с помощью get_curr_page и get_max_page соответственно. Если же была считана главная страница, то определяется число добавленных за последние сутки цитат, его можно получить с помощью get_approved_num. Если была считана бездна/произведён поиск по бездне, то возвращается массив array('id','date','cite'). Если был считан топ бездны, то возвращается массив array('id','rating','date','cite'). get_number() - public, возвращает число найденных на странице цитат get_page_name() - public, возвращает имя последней считанной страницы get_max_page(), get_curr_page() - public, см. bash_parse rate_cite($id,$typ=0,$inabyss=0) - public, изменяет рейтинг цитаты с номером $id. Если $typ==0, то ставится "+", если 1, то "-", если "2", то "боян" Если голосовать нужно за цитату в бездне, то укажите $inabyss==1, если же за уже добавленную цитату, то 0. Функция возвращает строку 'abyss', если после голосования был редирект на бездну, либо номер цитаты, на которую был редирект, либо 0, если не удалось распознать ни первое ни второе. get_cite_rate($id) - public, получает рейтинг добавленной цитаты с номером $id bash_add($cite='') - public, добавляет цитату с текстом $cite get_approved_num() - public, см. bash_parse Пример: для того, чтобы вывести свеженькие сегодняшние цитаты с главной страницы, достаточно такого кода: require_once("bash.php"); //подключаем класс $bash=new Bash(); //создаём объект $bash->bash_read(); //читаем главную $cite=$bash->bash_parse(); //парсим её $anum=$bash->get_approved_num(); //получаем число добавленных сегодня цитат $num=$bash->get_number(); //получаем число найденных цитат if($anum>$num) $anum=$num; //если добавлено было больше, чем отображается for($i=0;$i<$anum;$i++) { print "<hr>{$cite['cite'][$i]}"; //выводим цитатки } Вот пример простого ридера баша на базе моего класса: PHP: <html><head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> <title>Bash.Org.Ru Reader by DX</title> <style> body { font-family:'Arial'; font-size:12; } hr { height: 1px; color:black; border:none; background-color:blac; } .header { font-size:16; font-weight:bold; } .bkg { background-color:#99bbff; } a,a:active,a:visited { color:#34498B; text-decoration:none; font-weight:700; } a:hover { color: blue; font-weight:700; text-decoration:underline; } input { BORDER: rgb(50,50,50) 1px outset; FONT-SIZE: 11px; font-family:Arial; } </style></head> <body> <b><a href="?loc=0">Главная App.</a> | <a href="?loc=10">Главная All</a> | <a href="?loc=3">Топ бездны</a> | <a href="?loc=2">Бездна</a> | <a href="?loc=1">По рейтингу</a> | <a href="?loc=4">Случайные</a></b><form action="" method="get"><input type="hidden" name="loc" value="5">ID цитаты: <input type="text" name="page"> <input type="submit" value="Читать"></form><hr> <?php error_reporting(E_ALL); require_once("bash.php"); $loc=isset($_GET['loc']) ? $_GET['loc'] : 0; $cid=isset($_GET['id']) ? $_GET['id'] : 0; if($loc==1 || $loc==5) $page=isset($_GET['page']) ? $_GET['page'] : 1; else $page=1; $bash=new Bash(); $a=isset($_GET['a']) ? $_GET['a'] : 0; if($loc=='6') { $tmp=$bash->rate_cite($cid,0,$a); $loc=$tmp=='abyss' ? 2 : 5; $page=$cid; } else if($loc=='7') { $tmp=$bash->rate_cite($cid,1,$a); $loc=$tmp=='abyss' ? 2 : 5; $page=$cid; } else if($loc=='8') { $tmp=$bash->rate_cite($cid,2,$a); $loc=$tmp=='abyss' ? 2 : 5; $page=$cid; } $xloc=$loc; if($loc==10) $loc=0; $bash->bash_read($loc,$page); $cite=$bash->bash_parse(); if($xloc==0) $anum=$bash->get_approved_num(); else $anum=0; $num=$bash->get_number(); if($xloc==0) { if($anum>100) $anum=$num; } else { $anum=$num; } print "<center><span class='header'>".$bash->get_page_name()."</span></center><hr><b>Найдено: $anum</b>"; $ptxt=''; if($loc==1) { $ptxt="<br><b>Страницы: </b>"; $maxp=$bash->get_max_page(); $curp=$bash->get_curr_page(); $ptxt.="<a href='?loc=1&page=1'>первая</a> || "; if($curp>1) { $tmp=$curp-1; $ptxt.="<a href='?loc=1&page=$tmp'><<<предыдущая</a> "; } $ptxt.='<b>'.$curp.'</b>'; if($maxp>$curp) { $tmp=$curp+1; $ptxt.=" <a href='?loc=1&page=$tmp'>следующая>>></a>"; } $ptxt.=" || <a href='?loc=1&page=$maxp'>последняя</a>"; print $ptxt; } for($i=0;$i<$anum;$i++) { print "<hr><span class='bkg'>#{$cite['id'][$i]} | {$cite['date'][$i]}"; if(isset($cite['rating'][$i])) print " | <b>Rate</b>: {$cite['rating'][$i]}"; if(isset($cite['approved'][$i])) print " | <b>{$cite['approved'][$i]}</b>"; if($loc==0 || $loc==1 || $loc==5 || $loc==4) $a=0; else $a=1; print " || <a href='?loc=6&id={$cite['id'][$i]}&a=$a'>:D</a> | <a href='?loc=7&id={$cite['id'][$i]}&a=$a'>:(</a> | <a href='?loc=8&id={$cite['id'][$i]}&a=$a'>:X</a>"; print '</span><br>'.$cite['cite'][$i]; } if($ptxt) print '<hr>'.$ptxt; ?> </body></html>