<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>#Wolf# blog</title>
	<atom:link href="http://wolf-et.ru/feed/" rel="self" type="application/rss+xml" />
	<link>http://wolf-et.ru</link>
	<description>Standalone бложек #Wolf#'a</description>
	<lastBuildDate>Tue, 20 Mar 2012 08:28:16 +0000</lastBuildDate>
	<language>ru</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Скачиваем фото с mamba.ru (love.mail.ru). [Обновлено]</title>
		<link>http://wolf-et.ru/javascript/downloading-photo-from-mamba-ru/</link>
		<comments>http://wolf-et.ru/javascript/downloading-photo-from-mamba-ru/#comments</comments>
		<pubDate>Fri, 01 Jul 2011 10:13:05 +0000</pubDate>
		<dc:creator>#Wolf#</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[Jquery]]></category>
		<category><![CDATA[UserJS]]></category>
		<category><![CDATA[mamba.ru]]></category>

		<guid isPermaLink="false">http://wolf-et.ru/?p=273</guid>
		<description><![CDATA[Хочу представить вам userJS для сохранения фотографий с мамбы. Данное расширение добавляет кнопочку Download рядом с кнопкой Close. Подробности под катом Раз вы попали сюда, то наверное, вы сталкивались с проблемой сохранения изображений с сайта знакомств mamba.ru(love.mail.ru и другие партнерские проекты). Знакомая картина, не правда ли? Давайте разберемся, почему так происходит. Если заглянуть в исходный [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="aligncenter" style="border: 0px;" src="http://194.186.171.75/images/default2/mamba/logo.gif" alt="" width="182" height="36" border="0" /></p>
<p>Хочу представить вам userJS для сохранения фотографий с мамбы.<br />
Данное расширение добавляет кнопочку <strong>Download</strong> рядом с кнопкой <strong>Close</strong>.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-281" style="border: 0px;" title="pic" src="http://wolf-et.ru/wp-content/uploads/2011/07/Untitled-2.png" alt="" width="312" height="156" /></p>
<p style="text-align: center;">Подробности под катом</p>
<p><span id="more-273"></span><br />
Раз вы попали сюда, то наверное, вы сталкивались с проблемой сохранения изображений с сайта знакомств mamba.ru(love.mail.ru и другие партнерские проекты).</p>
<p>Знакомая картина, не правда ли? Давайте разберемся, почему так происходит. Если заглянуть в исходный текст страницы, то все становится понятно. Фотографии расположены горизонтальной лентой. Лента состоит из <span style="color: #ff0000;">DIV</span>'овых блоков, внуктри которых атрибут <span style="color: #ff0000;">INS</span> со свойством background-image. Он то нам и нужен.<br />
<a href="http://wolf-et.ru/wp-content/uploads/2011/07/Untitled-4.png" target="_blank"><img class="aligncenter size-medium wp-image-301" title="pic3" src="http://wolf-et.ru/wp-content/uploads/2011/07/Untitled-4-300x92.png" alt="" width="300" height="92" /></a></p>
<p style="text-align: center;">(кликабельно)</p>
<p>Приступаем к написанию кода.</p>
<pre class="brush: jscript; title: ; notranslate">
// ==UserScript==
// @name Mamba download photos
// @namespace wolf-et.ru
// @version 0.2
// @source wolf-et.ru
// @author #Wolf#
// @description Adds a download button for photos
// @include *mamba.ru*
// @include *love.mail.ru*
// ==/UserScript==
////jQ1.5////
Код jquery-1.5.min.js
////////////
var g;

function parse_id(){
var id=/photo_id\=(\d+)/gi.exec(window.location.href);return id[1];}
function parse_div(d){var my1=/(\d+)_huge/gi.exec(d);return my1[1];}
function clurl(im){var my2=/url\(&quot;?(.+?)&quot;?\)/gi.exec(im);if(my2!=null)return my2[1];}
if(/album_photos/gi.test(window.location)){
$('.fv-empty').before('&lt;a id=&quot;dwn&quot; style=&quot;right: 22px; top: 0; cursor: pointer; position: absolute; z-index: 101;&quot;&gt;&lt;img src=&quot;http://storage1.static.itmages.ru/i/11/1202/h_1322809719_5031124_6a6d02084d.jpeg&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;');
$('#dwn').click(function(){
$('.line').children().children().each(function(e) {
//if($(this).attr('style')!=undefined)alert($(this).attr('style'));
if(/_huge/gi.test($(this).attr('style'))){var tmp=$(this).attr('style');if(parse_id()==parse_div(tmp) &amp;&amp; tmp!=null)g=clurl(tmp);}
});
if(g!=null)window.open(g);
});
}
</pre>
<p style="text-align: center;">В итоге выглядит это примерно так:<br />
<img class="aligncenter size-full wp-image-281" style="border: 0px;" title="pic" src="http://wolf-et.ru/wp-content/uploads/2011/07/Untitled-2.png" alt="" width="312" height="156" /></p>
<p>По щелчку на кнопку, откроется новое окно, где вы можете привычным для вас способом(правой кнопкой мыши) сохранить фото.</p>
<p>Несколько слов касаемо кроссбраузерности.<br />
Код библиотеки jQuery пришлось вставить прямо в файл, т.к chrome не может заинклудить его с внешних ресурсов.<br />
<strong>Проверено на Mozilla firefox/Google chrome/Opera.</strong></p>
<p>Для установки пользователям Firefox(при условии, что установлено расширение Greasemonkey) и Chrome достаточно перейти по ссылке, представленной ниже.<br />
<a href="http://wolf-et.ru/wp-content/uploads/2011/07/mamba.user.js"><strong>mamba.user.js</strong></a><br />
Пользователям Opera необходимо скачать данный файл и положить в папку с пользовательскими скриптами, которая прописана в настройках браузера.</p>
]]></content:encoded>
			<wfw:commentRss>http://wolf-et.ru/javascript/downloading-photo-from-mamba-ru/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Curl vs sockets vs file_get_contents vs multiCurl</title>
		<link>http://wolf-et.ru/php/curl-vs-sockets-vs-file_get_contents-vs-multicurl/</link>
		<comments>http://wolf-et.ru/php/curl-vs-sockets-vs-file_get_contents-vs-multicurl/#comments</comments>
		<pubDate>Thu, 02 Sep 2010 07:14:54 +0000</pubDate>
		<dc:creator>#Wolf#</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[curl]]></category>
		<category><![CDATA[file_get_contents]]></category>
		<category><![CDATA[multicurl]]></category>
		<category><![CDATA[sockets]]></category>
		<category><![CDATA[versus]]></category>
		<category><![CDATA[vs]]></category>
		<category><![CDATA[сравнение]]></category>

		<guid isPermaLink="false">http://wolf-et.ru/?p=247</guid>
		<description><![CDATA[Давайте же проведем небольшое сравнение в скорости. 1) Curl 2) Sockets 3) file_get_contents 4) MultiCurl В качестве теста получим страницу "http://google.de" сто раз. Результаты: Как видим, лидирует мультикурл, беспощадно оставляя своих соперником далеко позади. Применять multicurl стоит лишь тогда, когда имеется объемное количество url'ов. Иначе, если список "страниц", которые необходимо "посетить" небольшой(2,3,5,10), самый рациональный вариант [...]]]></description>
			<content:encoded><![CDATA[<p>Давайте же проведем небольшое сравнение в скорости.</p>
<p>1) <strong>Curl</strong></p>
<pre class="brush: php; title: ; notranslate">
&lt; ?
function curl($url)
{
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL,$url);
curl_setopt ($ch, CURLOPT_USERAGENT, &quot;Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6&quot;);
curl_setopt ($ch, CURLOPT_TIMEOUT, 60);
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec ($ch);
curl_close($ch);
return $result;
}
</pre>
<p>2) <strong>Sockets</strong></p>
<pre class="brush: php; title: ; notranslate">
function sockets($host) {
$fp = fsockopen(&quot;www.&quot;.$host, 80, $errno, $errstr, 30);
  $out = &quot;GET / HTTP/1.1\r\n&quot;;
  $out .= &quot;Host: www.&quot;.$host.&quot;\r\n&quot;;
  $out .= &quot;Connection: Close\r\n\r\n&quot;;
  fwrite($fp, $out);
  $f='';
  while (!feof($fp)) {
    $f .= fgets($fp, 1024);
  }
return $f;
}</pre>
<p>3) <strong>file_get_contents</strong></p>
<pre class="brush: php; title: ; notranslate">
function fgc($url){
return file_get_contents($url);
}
</pre>
<p>4) <strong>MultiCurl</strong></p>
<pre class="brush: php; title: ; notranslate">
function multiRequest($data,$nobody=false,$options = array(), $oneoptions = array())
{
	$curls = array();
	$result = array();
	$mh = curl_multi_init();
	foreach ($data as $id =&gt; $d)
	{
		$curls[$id] = curl_init();
		$url = (is_array($d) &amp;amp;&amp;amp; !empty($d['url'])) ? $d['url'] : $d;
		curl_setopt($curls[$id], CURLOPT_URL,            $url);
		curl_setopt($curls[$id], CURLOPT_HEADER,         0);
		curl_setopt($curls[$id], CURLOPT_RETURNTRANSFER, true);
		curl_setopt($curls[$id], CURLOPT_FOLLOWLOCATION,1);
		curl_setopt($curls[$id], CURLOPT_USERAGENT,&quot;Mozilla/5.0(Windows;U;WindowsNT5.1;ru;rv:1.9.0.4)Gecko/2008102920AdCentriaIM/1.7Firefox/3.0.4&quot;);
		//curl_setopt($curls[$id], CURLOPT_COOKIEJAR,'cookies.txt');
		//curl_setopt($curls[$id], CURLOPT_COOKIEFILE,'cookies.txt');
		//curl_setopt($curls[$id], CURLOPT_NOBODY, $nobody);

		if (!empty($options))
		{
			curl_setopt_array($curls[$id], $options);
		}
		if (!empty($oneoptions[$id]))
		{
			curl_setopt_array($curls[$id], $oneoptions[$id]);
		}
		if (is_array($d))
		{
			if (!empty($d['post']))
			{

				curl_setopt($curls[$id], CURLOPT_POST,       1);
				curl_setopt($curls[$id], CURLOPT_POSTFIELDS, $d['post']);
			}
		}
		curl_multi_add_handle($mh, $curls[$id]);
	}
	$running = null;
	do
	{
		curl_multi_exec($mh, $running);
	}
	while($running &gt; 0);
	foreach($curls as $id =&gt; $content)
	{
		$result[$id] = curl_multi_getcontent($content);
		//echo curl_multi_getcontent($content);
		curl_multi_remove_handle($mh, $content);
	}
	curl_multi_close($mh);
	return $result;
}
</pre>
<p>В качестве теста получим страницу "http://google.de" сто раз.</p>
<pre class="brush: php; title: ; notranslate">
$url = 'google.de';
$start = microtime(1);
for($i=0;$i&amp;lt;100;$i++)
curl($url);
$end = microtime(1);
echo &quot;Curl:&quot;.($end-$start).&quot;\n&quot;;

$start = microtime(1);
for($i=0;$i&amp;lt;100;$i++)
fgc(&quot;http://$url/&quot;);
$end = microtime(1);
echo &quot;file_get_contents:&quot;.($end-$start).&quot;\n&quot;;

$start = microtime(1);
for($i=0;$i&amp;lt;100;$i++)
sockets($url);
$end = microtime(1);
echo &quot;Sockets:&quot;.($end-$start).&quot;\n&quot;;

$start = microtime(1);
for($i=0;$i&amp;lt;100;$i++)
$arr[]=$url;
multiRequest($arr);
$end = microtime(1);
echo &quot;MultiCurl:&quot;.($end-$start).&quot;\n&quot;;
?&gt;
</pre>
<p><strong>Результаты:</strong></p>
<pre class="brush: bash; title: ; notranslate">
Curl: 5.39667105675
file_get_contents: 7.99799394608
Sockets: 2.99629592896
MultiCurl: 0.736907958984
</pre>
<p>Как видим, лидирует <strong>мультикурл</strong>, беспощадно оставляя своих соперником далеко позади. Применять <strong>multicurl</strong> стоит лишь тогда, когда имеется объемное количество <strong>url</strong>'ов.<br />
Иначе, если список "страниц", которые необходимо "посетить" небольшой(2,3,5,10), самый рациональный вариант - использовать сокеты, но..кому как, мне например, несмотря на то, что т <strong>socket</strong>'ы выигрывают у <strong>curl</strong>'а, удобнее использовать его, т.к нет проблем с заголовками(headers) и прочим.</p>
<p>Что выбрать? Решать только вам.</p>
]]></content:encoded>
			<wfw:commentRss>http://wolf-et.ru/php/curl-vs-sockets-vs-file_get_contents-vs-multicurl/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Журнал отметок(оценок) [php+ajax]</title>
		<link>http://wolf-et.ru/php/%d0%b6%d1%83%d1%80%d0%bd%d0%b0%d0%bb-%d0%be%d1%82%d0%bc%d0%b5%d1%82%d0%be%d0%ba-%d0%be%d1%86%d0%b5%d0%bd%d0%be%d0%ba-phpajax/</link>
		<comments>http://wolf-et.ru/php/%d0%b6%d1%83%d1%80%d0%bd%d0%b0%d0%bb-%d0%be%d1%82%d0%bc%d0%b5%d1%82%d0%be%d0%ba-%d0%be%d1%86%d0%b5%d0%bd%d0%be%d0%ba-phpajax/#comments</comments>
		<pubDate>Wed, 25 Aug 2010 14:37:35 +0000</pubDate>
		<dc:creator>#Wolf#</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[journal]]></category>
		<category><![CDATA[php отметки]]></category>
		<category><![CDATA[журнал]]></category>
		<category><![CDATA[оценки]]></category>

		<guid isPermaLink="false">http://wolf-et.ru/?p=170</guid>
		<description><![CDATA[Написал довольно простую реализацию журнала отметок с использованием php и ajax. Ниже представлена пара скриншотов, которые наглядно демонстрируют функционал. UPDATE: Добавлены всплывающие уведомления. Дальнейшее описание и исходники под катом. index.php bd.php ajax.php journal.js style.css grade.sql grade.sql В архиве]]></description>
			<content:encoded><![CDATA[<p>Написал довольно простую реализацию журнала отметок с использованием php и ajax.<br />
Ниже представлена пара скриншотов, которые наглядно демонстрируют функционал.<br />
<a href="http://wolf-et.ru/wp-content/uploads/2010/08/wolf-et-journal-e1282741379308.jpg"><img src="http://wolf-et.ru/wp-content/uploads/2010/08/wolf-et-journal-e1282741379308-300x209.jpg" alt="" title="wolf-et-journal" width="300" height="209" class="aligncenter size-medium wp-image-171" /></a><br />
<strong>UPDATE:</strong> Добавлены всплывающие уведомления.<br />
Дальнейшее описание и исходники под катом.<br />
<span id="more-170"></span><br />
<strong>index.php</strong></p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
#Govnocode by #Wolf-et.ru#
require_once(&quot;bd.php&quot;);
header('Content-Type: text/html; charset=utf-8');
echo &lt;&lt;&lt;HTML
&lt;link href=&quot;style.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot; /&gt;
&lt;script language=&quot;javascript&quot; src=&quot;journal.js&quot;&gt;&lt;/script&gt;
&lt;div class=&quot;edit&quot; id=&quot;edit&quot;&gt;
&lt;input type=&quot;hidden&quot; class=&quot;button&quot; id=&quot;delete&quot; value=&quot;Delete&quot; onclick=&quot;deletep()&quot; /&gt;
&lt;input type=&quot;text&quot; class=&quot;save&quot; name=&quot;text&quot; size=&quot;15&quot; id=&quot;text&quot;/&gt;
&lt;input type=&quot;button&quot; class=&quot;button&quot; value=&quot;Save&quot; id=&quot;save&quot; onclick=&quot;save()&quot; /&gt;
&lt;/div&gt;
&lt;div class=&quot;notification success&quot; id=&quot;success&quot; &gt;
&lt;a href=&quot;javascript:void(0);&quot; onclick=&quot;hide_notify('success');&quot; class=&quot;close&quot;&gt;close&lt;/a&gt;
&lt;div id=&quot;success_text&quot;&gt;success&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;error&quot; class=&quot;notification error&quot;&gt;
&lt;a href=&quot;javascript:void(0);&quot; onclick=&quot;hide_notify('error');&quot; class=&quot;close&quot;&gt;close&lt;/a&gt;
&lt;div id=&quot;error_text&quot;&gt;error&lt;/div&gt;
&lt;/div&gt;
HTML;
function getevabymonth($date,$p_id){
$query=mysql_query(&quot;SELECT id,rate FROM grade WHERE date='&quot;.$date.&quot;' AND p_id='&quot;.$p_id.&quot;' LIMIT 1&quot;);
if(mysql_num_rows($query)&gt;0)
$result=mysql_fetch_assoc($query);
else return '0';
return $result;
}
function parsedate($date){
if(!$date)$date=date('d-m-Y');
preg_match('#([\d]{1,2})-([\d]{1,2})-([\d]{2,4})#',$date,$result);
$a=array();
$a['day']=$result[1];
$a['month']=$result[2];
$a['year']=$result[3];
return $a;
}
function monthname($month){
return date('F',mktime(0,0,0,$month));
}
function getmonth($month){
return (int)date('t',mktime(0,0,0,$month));
}
function journal($month,$year){
if(strlen($year)!=4)die('Год следует указывать в полном формате. Например &quot;2010&quot;');
$monthname=monthname($month);
$cm=getmonth($month);
$query=mysql_query(&quot;SELECT id,name,tel FROM people ORDER BY name&quot;);
echo '&lt;table border=&quot;1&quot; width=&quot;auto&quot;&gt;';
echo &quot;&lt;tr align='center'&gt;&lt;td&gt;&lt;/td&gt;&lt;td align='center'&gt;&quot;.$monthname.&quot;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;\n&quot;;
echo '&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;№&lt;/td&gt;&lt;td align=&quot;center&quot; id=&quot;newp&quot; onclick=&quot;showMenu(this,event)&quot; class=&quot;normal&quot;  onmouseover=&quot;setClass(this,\'hover\')&quot; onmouseout=&quot;setClass(this,\'normal\')&quot;&gt;Имя [ + ]&lt;/td&gt;';for($i=1;$i&lt; =$cm;$i++){$ii=($i&amp;lt;10)?'0'.$i:$i; echo '&lt;td&gt;'.$ii.&quot;\n&quot;;}echo &quot;&lt;/tr&gt;\n&quot;;
$x=1;$y=1;
while($r=mysql_fetch_assoc($query)){
echo &quot;&lt;tr&gt;&lt;td&gt;&quot;.$y.&quot;&lt;/td&gt;&lt;td id='people_&quot;.$r['id'].&quot;' onclick=\&quot;showMenu(this,event);\&quot; class=\&quot;normal\&quot;  onmouseover=\&quot;setClass(this,'hover')\&quot; onmouseout=\&quot;setClass(this,'normal')\&quot;&gt;&quot;.$r['name'].&quot;&lt;/td&gt;\n&quot;;
for($i=1;$i&lt; =$cm;$i++){
$ii=($i&amp;lt;10)?'0'.$i:$i;
$re=getevabymonth($ii.'-'.$month.'-'.$year,$r['id']);
if($re['rate']!=0) echo '&lt;td id=&quot;cell_'.$re['id'].'&quot; class=&quot;normal&quot;  onmouseover=&quot;setClass(this,\'hover\')&quot; onmouseout=&quot;setClass(this,\'normal\')&quot; onclick=&quot;showMenu(this,event);makecook(\''.$re['id'].'\');&quot;&gt;'.$re['rate'].&quot;\n&quot;;
else
echo '&lt;td id=&quot;cell__'.$x.'&quot; class=&quot;normal&quot;  onmouseover=&quot;setClass(this,\'hover\')&quot; onmouseout=&quot;setClass(this,\'normal\')&quot; onclick=&quot;showMenu(this,event);makecook2(\''.$ii.'-'.$month.'-'.$year.'\',\''.$r['id'].'\');&quot;&gt;&amp;nbsp;&lt;/td&gt;'.&quot;\n&quot;;
$x++;
}echo &quot;&lt;/tr&gt;\n&quot;;$y++;}
echo '&lt;/table&gt;';
}
function make_select(){
global $month,$year;
$y_val=(isset($year))?$year:date('Y');
echo '&lt;form name=&quot;myform&quot; method=&quot;GET&quot;&gt;
&lt;input type=&quot;text&quot; size=&quot;4&quot; class=&quot;button&quot; name=&quot;year&quot; value=&quot;'.$y_val.'&quot;/&gt;
&lt;select name=&quot;month&quot; onchange=&quot;document.forms[0].submit();&quot;&gt;';
for($i=1;$i&lt; =12;$i++){
if(isset($month))$where=$month; else $where=date('m');
$ii=($i&amp;lt;10)?'0'.$i:$i;
$selected=($ii==$where)?'selected':false;
echo '&lt;option class=&quot;save&quot; '.$selected.' value=&quot;'.$ii.'&quot; &gt;'.monthname($ii).''.&quot;\n&quot;;
}
echo '&lt;/select&gt;&lt;/form&gt;';
}
$month=@$_REQUEST['month'];
$year=@$_REQUEST['year'];
make_select();
if(isset($month) &amp;&amp; isset($year)){
journal($month,$year);
}
else journal(date('m'),date('Y'));
</pre>
<p><strong>bd.php</strong></p>
<pre class="brush: php; title: ; notranslate">
&lt; ?php
$db = mysql_connect(&quot;localhost&quot;,&quot;root&quot;,&quot;root&quot;);
mysql_select_db(&quot;journal&quot;,$db);
mysql_query(&quot;SET NAMES 'utf8'&quot;);
?&gt;
</pre>
<p><strong>ajax.php</strong></p>
<pre class="brush: php; title: ; notranslate">
&lt; ?php
header('Content-Type: text/html; charset=utf-8');
require_once(&quot;bd.php&quot;);
//print_r($_REQUEST);
$action=strtolower(@$_REQUEST['action']);
if(!preg_match('#^insert|edit|edit_p|newp|deletep$#',$action))die(&quot;Unknown action.&quot;);
$date=@$_REQUEST['date'];
$newname=@$_REQUEST['newname'];
$p_id=intval(@$_REQUEST['p_id']);
$id=intval(@$_REQUEST['id']);
$rate=trim(str_replace(&quot; &quot;,&quot;&quot;,@$_REQUEST['rate']));
if($action=='insert'){
if(!preg_match('#[\d]{1,2}-[\d]{1,2}-[\d]{2,4}#',$date))die('Incorrect date format.');
if(!preg_match('#^[1-5]$#',$rate)) die('Нет оценки или же она выходит за пределы [1-5].');
$query=mysql_query(&quot;INSERT INTO grade(rate,date,p_id) VALUES ('&quot;.$rate.&quot;','&quot;.$date.&quot;','&quot;.$p_id.&quot;')&quot;)or die(mysql_error());
if($query) echo &quot;OK.&lt;br /&gt;Grade was added for user \&quot;&quot;.getnbyid($p_id).&quot;\&quot;.&quot;;
}
elseif($action=='edit'){
if(!preg_match('#^[1-5|]$#',$rate) &amp;&amp; $rate!='') die('Нет оценки или же она выходит за пределы [1-5].');
if($rate=='')
$query=mysql_query(&quot;DELETE FROM grade WHERE id='&quot;.$id.&quot;'&quot;)or die(mysql_error());
else
$query=mysql_query(&quot;UPDATE grade SET rate = '&quot;.$rate.&quot;'  WHERE id='&quot;.mysql_real_escape_string($id).&quot;'&quot;)or die(mysql_error());
if($query) echo &quot;OK.&lt;br /&gt;Grade was updated successfully for user \&quot;&quot;.getnbyid(getp_id($id)).&quot;\&quot;.&quot;;
}elseif($action=='edit_p'){
$query=mysql_query(&quot;UPDATE people SET name = '&quot;.mysql_real_escape_string($newname).&quot;'  WHERE id='&quot;.$id.&quot;'&quot;)or die(mysql_error());
if($query) echo &quot;OK.&lt;br /&gt;User \&quot;&quot;.$newname.&quot;\&quot; was edited successfully.&quot;;
}elseif($action=='newp'){
$query=mysql_query(&quot;INSERT INTO people(name) VALUES ('&quot;.mysql_real_escape_string($newname).&quot;')&quot;)or die(mysql_error());
if($query)  echo &quot;OK.&lt;br /&gt;User \&quot;&quot;.$newname.&quot;\&quot; was added successfully.&quot;;
}elseif($action=='deletep'){
	$user=getnbyid($id);
$query=mysql_query(&quot;DELETE FROM people WHERE id='&quot;.$id.&quot;'&quot;)or die(mysql_error());
if($query) echo &quot;OK.&lt;br /&gt;User \&quot;&quot;.$user.&quot;\&quot; was deleted successfully.&quot;;
}
function getnbyid($id){
$query=mysql_query(&quot;SELECT name FROM people WHERE id='&quot;.intval($id).&quot;' LIMIT 1&quot;);
$result=mysql_fetch_assoc($query);
return $result['name'];
}
function getp_id($id){
$query=mysql_query(&quot;SELECT p_id FROM `grade` WHERE id='&quot;.intval($id).&quot;'&quot;);
$result=mysql_fetch_assoc($query);
return $result['p_id'];
}
?&gt;
</pre>
<p><strong>journal.js</strong></p>
<pre class="brush: jscript; title: ; notranslate">
//#Govnocode by #Wolf-et.ru#
var selectedCell=null;
	function setClass(id,cName){
		if(id.className!='selected'){
			id.className=cName;
		}
	}
	function save(){
		if(selectedCell!=null){
		//alert(selectedCell.id);
			if(selectedCell.id!='newp'){
			if(document.getElementById('text').value!=&quot;&quot;)
			selectedCell.innerHTML=document.getElementById('text').value;
			else
			selectedCell.innerHTML=&quot;&amp;nbsp;&quot;;
			}
			//alert(document.getElementById('text').value);
			document.getElementById('edit').style.display=&quot;none&quot;;
			selectedCell.className='normal';
			date=getCookie('date');
			p_id=getCookie('p_id');
			iid=getCookie('id');
			form_data=document.getElementById('text').value;
			if(/cell/gi.test(selectedCell.id)){
			if(/__/gi.test(selectedCell.id))
			send('ajax.php?action=insert&amp;date='+date+'&amp;p_id='+p_id+'&amp;rate='+form_data);
			else
			send('ajax.php?action=edit&amp;id='+iid+'&amp;rate='+form_data);
			}
			if(/people_/gi.test(selectedCell.id)){
			pi_id=selectedCell.id.match(new RegExp (&quot;[\\d]+&quot;,&quot;i&quot;));
			send('ajax.php?action=edit_p&amp;id='+pi_id+'&amp;newname='+form_data);
			}
			if(selectedCell.id=='newp'){
			send('ajax.php?action=newp&amp;newname='+form_data);
			}
			Delete_Cookie('p_id');
			Delete_Cookie('date');
			Delete_Cookie('id');
			//window.location.reload()
		}
	}
	function deletep(){
	if(selectedCell!=null){
			if(confirm('Are you sure?')){
			//alert(document.getElementById('text').value);
			document.getElementById('edit').style.display=&quot;none&quot;;
			selectedCell.className='normal';
			if(/people_/gi.test(selectedCell.id)){
			pi_id=selectedCell.id.match(new RegExp (&quot;[\\d]+&quot;,&quot;i&quot;));

			send('ajax.php?action=deletep&amp;id='+pi_id);
			}
			}

		}
	}
	function save_p(){
		if(selectedCell!=null){
			if(document.getElementById('textpeople').value!=&quot;&quot;)
			selectedCell.innerHTML=document.getElementById('textpeople').value;
			else
			selectedCell.innerHTML=&quot;&amp;nbsp;&quot;;
			alert(document.getElementById('textpeople').value);
			document.getElementById('editpeople').style.display=&quot;none&quot;;
			selectedCell.className='normal';

		}
	}
function people(){
my_menu=document.getElementById('people');
if(my_menu.style.display==&quot;none&quot;  || my_menu.style.display==&quot;&quot;){
	my_menu.style.display=&quot;block&quot;;

	} else {
	my_menu.style.display=&quot;none&quot;;
	selectedCell.className='normal';
}}
function showMenu(id,e){
	if(selectedCell!=null)selectedCell.className='normal';
	selectedCell=id;
	selectedCell.className='selected';
	if (!e) var e = window.event;
	if (/people_/gi.test(selectedCell.id) || /newp/gi.test(selectedCell.id))document.getElementById('text').size=15;else document.getElementById('text').size=1;
	if (/people_/gi.test(selectedCell.id))
	document.getElementById('delete').type=&quot;button&quot;;
	else document.getElementById('delete').type=&quot;hidden&quot;;
	var my_menu =  document.getElementById('edit');
	my_menu.style.left=e.clientX+10+ &quot;px&quot;;
	my_menu.style.top=e.clientY+5+ &quot;px&quot;;
	if(my_menu.style.display==&quot;none&quot;  || my_menu.style.display==&quot;&quot;){
	my_menu.style.display=&quot;block&quot;;

	if(/newp/gi.test(id.id)){
	document.getElementById('text').value=&quot;&quot;;
	document.getElementById('save').value=&quot;Add&quot;;
	}else
	document.getElementById('text').value=nbspreplace(id.innerHTML);
	document.getElementById('text').focus();
	} else {
	my_menu.style.display=&quot;none&quot;;
	selectedCell.className='normal';
	Delete_Cookie('p_id');
	Delete_Cookie('date');
	Delete_Cookie('id');
	}
}
function show(id,e){
	if(selectedCell!=null)selectedCell.className='normal';
	selectedCell=id;
	selectedCell.className='selected';
	if (!e) var e = window.event;
	var my_menu =  document.getElementById('editpeople');
	my_menu.style.left=e.clientX+10+ &quot;px&quot;;
	my_menu.style.top=e.clientY+5+ &quot;px&quot;;
	if(my_menu.style.display==&quot;none&quot;  || my_menu.style.display==&quot;&quot;){
	my_menu.style.display=&quot;block&quot;;
	document.getElementById('textpeople').value=nbspreplace(id.innerHTML);
	document.getElementById('textpeople').focus();
	} else {
	my_menu.style.display=&quot;none&quot;;
	selectedCell.className='normal';
	}
}
function getXmlHttp(){
	var xmlhttp
	try {
		xmlhttp = new ActiveXObject(&quot;Msxml2.XMLHTTP&quot;);
	} catch (e) {
		try {
			xmlhttp = new ActiveXObject(&quot;Microsoft.XMLHTTP&quot;);
		} catch (e1) {
      			xmlhttp = false;
		}
	}

	if (!xmlhttp &amp;&amp; typeof XMLHttpRequest!='undefined') {
		xmlhttp = new XMLHttpRequest();
	}

	return xmlhttp;
}

function send(url){
	var req = getXmlHttp();
	//alert(url);
	function stateChange() {
  //Look for the complete state of 4
  if (req.readyState == 4) {
    //Make sure status is a success
   // alert(req.status);
    if (req.status == 200 || req.status == 0) {
      //display content
      show_notify('success',req.responseText);
      setTimeout('reloadpg()',2000);
      //alert(req.responseText);
    }
    else {
      show_notify('error',req.statusText);
    }
  }
}
        req.onreadystatechange = stateChange;
    //Give it the keys specifying GET or POST
        req.open(&quot;GET&quot;, url, true);
    //Since we are using GET no info to send
        req.send(&quot;&quot;);

}
function reloadpg(){window.location.reload();}
function hide_notify(id){
div=document.getElementById(id);
div.style.display=&quot;none&quot;;
}
function show_notify(id,text){
div=document.getElementById(id);
div.style.display=&quot;block&quot;;
document.getElementById(id+'_text').innerHTML=text;
}
function setCookie(name, value) {
	if (!name || !value) return false;
	var str = name + '=' + encodeURIComponent(value);
	var expiresDate = new Date();
        expiresDate.setTime(expiresDate.getTime() + 60*60*24*365*10000);//10years &gt;]:D
        var expires = expiresDate.toGMTString();
        //alert(expires);
	if (expires) str += '; expires=' + expires;
	//if (path)    str += '; path=' + path;
	//if (domain)  str += '; domain=' + domain;
	//if (secure)  str += '; secure';

	document.cookie = str;
	return true;
}

function getCookie(name) {
	var cookie = &quot; &quot; + document.cookie;
	var search = &quot; &quot; + name + &quot;=&quot;;
	var setStr = null;
	var offset = 0;
	var end = 0;
	if (cookie.length &gt; 0) {
		offset = cookie.indexOf(search);
		if (offset != -1) {
			offset += search.length;
			end = cookie.indexOf(&quot;;&quot;, offset)
			if (end == -1) {
				end = cookie.length;
			}
			setStr = unescape(cookie.substring(offset, end));
		}
	}
	return(setStr);
}

function Delete_Cookie( name, path, domain ) {
if ( getCookie( name ) ) document.cookie = name + &quot;=&quot; +
( ( path ) ? &quot;;path=&quot; + path : &quot;&quot;) +
( ( domain ) ? &quot;;domain=&quot; + domain : &quot;&quot; ) +
&quot;;expires=Thu, 01-Jan-1970 00:00:01 GMT&quot;;
}

function makecook(id){
setCookie('id',id);
}

function makecook2(date,p_id){
setCookie('date',date);
setCookie('p_id',p_id);
}

function nbspreplace(str)
{
return str.replace(/&amp;nbsp;/gi,'');
}
</pre>
<p><strong>style.css</strong></p>
<pre class="brush: css; title: ; notranslate">
.hover{
background-color:#c4c4c4;
cursor:pointer;
}
.normal{
background-color:#f4f4f4;
}
.selected{
background-color:#FCF;
}

.edit{
display:none;
position:absolute;
border:dashed 2px /*#aEaEaE*/#0464E9;  /*border-right:solid 1px #999999; border-bottom:solid 1px #999999;*/
padding:4px;
background:#FFFFFF;
}
.item_line {
border-top:2px solid #0464E9;
margin-top:5px;
margin-bottom:5px;
}
.people{
display:none;
position:absolute;
border:dashed 2px #0464E9;
padding:4px;
background:#FFFFFF;
}
.button {
border:solid 1px #848388;
}
.save {
border:solid 1px #848388;
}

/* demo CSS */
.notification {
position:absolute;
margin:10px 10px 10px 10px;
padding: 0;
border: 1px solid;
background-position: 10px 11px !important;
background-repeat: no-repeat !important;
font-size: 13px;
width: 350px;
right: 0;
font-style:normal;
padding: 10px 10px 10px 36px;
line-height: 1.5em;
}
.notification.success {
display:none;
background: #d5ffce url(tick_circle.png);
border-color: #9adf8f;
color: #556652;}
.notification.error {
display:none;
background: #ffcece url(cross_circle.png);
border-color: #df8f8f;
color: #665252;}

.notification .close {
position:absolute;
right:5px;
top:5px;
width:7px;
height:7px;
display:block;
text-indent:-30000px;
background: url(cross_grey_small.png) no-repeat 0 0;
}
</pre>
<p><strong>grade.sql</strong></p>
<pre class="brush: sql; title: ; notranslate">
--
-- Структура таблицы `grade`
--

CREATE TABLE IF NOT EXISTS `grade` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `rate` varchar(11) NOT NULL,
  `date` varchar(11) NOT NULL,
  `p_id` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=54 ;

--
-- Дамп данных таблицы `grade`
--

INSERT INTO `grade` (`id`, `rate`, `date`, `p_id`) VALUES
(4, '5', '18-08-2010', 2),
(19, '4', '19-08-2010', 3),
(20, '1', '21-08-2010', 3),
(21, '4', '16-08-2010', 2),
(22, '2', '28-08-2010', 3),
(23, '5', '29-08-2010', 3),
(24, '5', '20-08-2010', 4),
(25, '1', '01-08-2010', 1),
(47, '2', '14-08-2010', 5),
(29, '1', '13-08-2010', 3),
(31, '5', '07-01-2010', 1),
(32, '4', '03-08-2010', 3),
(33, '1', '06-08-2010', 2),
(34, '1', '05-08-2010', 3),
(35, '5', '09-08-2010', 3),
(37, '2', '15-08-2010', 3),
(39, '5', '31-08-2010', 3),
(49, '2', '31-08-2010', 1),
(48, '1', '31-08-2010', 5),
(42, '2', '26-08-2010', 3),
(50, '3', '31-08-2010', 2),
(46, '3', '24-08-2010', 3),
(52, '2', '31-08-2010', 4),
(53, '2', '21-08-2010', 4);
</pre>
<p><strong>grade.sql</strong></p>
<pre class="brush: sql; title: ; notranslate">
--
-- Структура таблицы `people`
--

CREATE TABLE IF NOT EXISTS `people` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL,
  `tel` varchar(255) NOT NULL,
  `something` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=7 ;

--
-- Дамп данных таблицы `people`
--

INSERT INTO `people` (`id`, `name`, `tel`, `something`) VALUES
(2, 'Петров', '222-222', 'something'),
(3, 'Сидоров', '333-333', 'something'),
(4, 'Сидоренко', '444-444', 'something'),
(6, 'Краснов', '', '');
</pre>
<p><a href='http://wolf-et.ru/wp-content/uploads/2010/08/journal.zip'>В архиве</a></p>
]]></content:encoded>
			<wfw:commentRss>http://wolf-et.ru/php/%d0%b6%d1%83%d1%80%d0%bd%d0%b0%d0%bb-%d0%be%d1%82%d0%bc%d0%b5%d1%82%d0%be%d0%ba-%d0%be%d1%86%d0%b5%d0%bd%d0%be%d0%ba-phpajax/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>preg_replace или делаем ссылки кликабельными</title>
		<link>http://wolf-et.ru/php/preg_replace-or-making-hyperlinks/</link>
		<comments>http://wolf-et.ru/php/preg_replace-or-making-hyperlinks/#comments</comments>
		<pubDate>Sun, 08 Aug 2010 06:26:53 +0000</pubDate>
		<dc:creator>#Wolf#</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[a href]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[preg_match]]></category>
		<category><![CDATA[preg_replace]]></category>
		<category><![CDATA[замена ссылок]]></category>
		<category><![CDATA[кликабельные ссылки]]></category>

		<guid isPermaLink="false">http://wolf-et.ru/?p=149</guid>
		<description><![CDATA[Несколько дней назад мой товарищ попросил меня помочь с одним вопросом. Задача была следующей: заменить все ссылки вида на кликабельные ,т.е Чуть ниже представлена простейшая реализация: Если же просто надо спарсить ссылки, то:]]></description>
			<content:encoded><![CDATA[<p>Несколько дней назад мой товарищ попросил меня помочь с одним вопросом.<br />
Задача была следующей: заменить все ссылки вида </p>
<pre class="brush: xml; auto-links: false; light: true; title: ; notranslate">http://google.com</pre>
<p>на кликабельные ,т.е </p>
<pre class="brush: xml; auto-links: false; light: true; title: ; notranslate">&lt;a href=&quot;http://google.com&quot;&gt;http://google.com&lt;/a&gt;</pre>
<p>Чуть ниже представлена простейшая реализация:</p>
<pre class="brush: php; light: true; title: ; notranslate">$text=preg_replace('#((?:http|https):\/\/[^\s]+)#i','&lt;a href=&quot;$1&quot; /&gt;$1', $text);</pre>
<p>Если же просто надо спарсить ссылки, то:</p>
<pre class="brush: php; light: true; title: ; notranslate">preg_match_all('#((?:http|https):\/\/[^\s]+)#i',$text,$matches);
print_r($matches);
</pre>
]]></content:encoded>
			<wfw:commentRss>http://wolf-et.ru/php/preg_replace-or-making-hyperlinks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Iptables для новичка</title>
		<link>http://wolf-et.ru/linux/iptables-for-dummies/</link>
		<comments>http://wolf-et.ru/linux/iptables-for-dummies/#comments</comments>
		<pubDate>Sun, 18 Jul 2010 03:42:52 +0000</pubDate>
		<dc:creator>#Wolf#</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[ACCEPT]]></category>
		<category><![CDATA[ban]]></category>
		<category><![CDATA[DROP]]></category>
		<category><![CDATA[iptables]]></category>
		<category><![CDATA[unban]]></category>

		<guid isPermaLink="false">http://wolf-et.ru/?p=96</guid>
		<description><![CDATA[Начнем с того - что такое iptables? iptables - утилита(служба) для контроля сетевого трафика или попросту некий фаерволл с огромными возможностями. Важно: запускать iptables необходимо с правами root'a. Синтаксис iptables следующий: Ключи для работы с цепочками: -A - добавить новое правило. -D - удалить правило. -F - удалить все правила. -R - замена правила. -L [...]]]></description>
			<content:encoded><![CDATA[<p>Начнем с того - что такое iptables?<br />
<strong>iptables</strong> - утилита(служба) для контроля сетевого трафика или попросту некий фаерволл с огромными возможностями.<br />
<span style="color: #99cc00;"><em>Важно: запускать iptables необходимо с правами root'a.</em></span></p>
<p>Синтаксис <strong>iptables</strong> следующий:</p>
<pre class="brush: bash; light: true; title: ; notranslate">iptables [-t ТАБЛИЦА] -A ЦЕПОЧКА ПАРАМЕТРЫ -j ДЕЙСТВИЕ</pre>
<p><strong>Ключи для работы с цепочками:</strong><br />
<strong>-A</strong> - добавить новое правило.<br />
<strong>-D</strong> - удалить правило.<br />
<strong>-F</strong> - удалить все правила.<br />
<strong>-R</strong> - замена правила.<br />
<strong>-L</strong> - вывод списка всех правил.</p>
<p>В таблице <strong><em>filter</em></strong>(по умолчанию) существую следующие <strong>цепочки:</strong><br />
<strong>INPUT</strong> - входящий трафик.<br />
<strong>OUTPUT</strong> - исходящий трафик.<br />
<strong>FORWARD</strong> - пересылаемый(транзитный) трафик.</p>
<p><strong>Параметры:</strong><br />
<strong>-p</strong> - протокол, можно использовать all,icmp,tcp,udp.<br />
<strong>-s</strong> - ip адрес/хост источника.<br />
<strong>-d</strong> - ip адрес/хост назначения.<br />
<strong>-i</strong> - интерфейс на который пришел пакет.<br />
<strong>-o</strong> - интерфейс с которого уйдет пакет .<br />
<span style="color: #99cc00;">(просмотреть все интерфейсы можно с помощью команды.<strong>ifconfig</strong>, обычно это  <strong>eth0</strong>)</span><br />
<strong>--sport</strong> - порт источника.<br />
<strong>--dport</strong> - порт назначения.</p>
<p><strong>Действия:</strong><br />
<strong>ACCEPT</strong> - разрешить пакеты.<br />
<strong>REJECT</strong> - блокировать пакеты с сообщением об отказе.<br />
<strong>DROP</strong> - блокировать пакеты(более приоритетный вариант, нежели REJECT, т.к для блокируемого ip адреса(или диапазонов) будет аналогичный эффект тому, когда сервер находится в дауне).</p>
<p><strong>Несколько примеров:</strong><br />
<strong>1)</strong> Блокируем все входящие пакеты с ip адреса <span style="color: #ff6600;">111.111.111.111</span></p>
<pre class="brush: bash; light: true; title: ; notranslate">iptables -A INPUT -s 111.111.111.111 -j DROP</pre>
<p>А с помощью знака "<strong>!</strong>"(отрицание) можно сделать блокировку всех адресов(хостов), кроме заданного.<br />
Например, с помощью нижеприведенной команды, пакеты будут блокироваться со всех адресов, кроме <span style="color: #ff6600;">111.111.111.111</span></p>
<pre class="brush: bash; light: true; title: ; notranslate">iptables -A INPUT ! -s 111.111.111.111 -j DROP</pre>
<p><strong>2)</strong> Снимаем бан с IP <span style="color: #ff6600;">111.111.111.111</span></p>
<pre class="brush: bash; light: true; title: ; notranslate">iptables -D INPUT -s 111.111.111.111 -j DROP</pre>
<p><strong>3)</strong> Просмотр списка с правилами</p>
<pre class="brush: bash; light: true; title: ; notranslate">iptables -L INPUT --line-numbers</pre>
<p>Таким образом мы сможем увидить все пронумерованные правила, которые также можно удалить с помощью ключа <strong>-D</strong>.<br />
Нижеприведенная команда удаляет правила под номером 5.</p>
<pre class="brush: bash; light: true; title: ; notranslate">iptables -D INPUT 5</pre>
<p><strong>4)</strong> Поностью очищаем список со всеми правилами</p>
<pre class="brush: bash; light: true; title: ; notranslate">iptables -F</pre>
<p><strong>5)</strong> Блокируем входящие пакеты для диапазона ip адресов c <span style="color: #ff6600;">192.168.0.8</span> по <span style="color: #ff6600;">192.168.0.25</span></p>
<pre class="brush: bash; light: true; title: ; notranslate">iptables -I INPUT -m iprange --src-range 192.168.0.8-192.168.0.25 -j DROP</pre>
<p><strong>6)</strong> Блокируем весь входящий трафик на 80 порт(http).</p>
<pre class="brush: bash; light: true; title: ; notranslate">iptables -A INPUT -p tcp --sport 80 -j DROP</pre>
<p><strong>7)</strong> Блокируем домен <span style="color: #ff6600;">vk.com</span>(вконтакте).</p>
<pre class="brush: bash; light: true; title: ; notranslate">
iptables -A INPUT -s vk.com -j DROP # блокируем входящие пакеты от домена vk.com
iptables -A OUTPUT -d vk.com -j DROP # блокируем исходящие пакеты к домену vk.com
</pre>
<p>Другие домены вконтакта: <span style="color: #99cc00;">vk.com, vkontakte.ru, incontact.ru , durov.ru</span></p>
<hr />
Также можно прописать алиасы в файл <strong>.bashrc</strong>(или в .bash_aliases) для удобства использования первого и второго примера:</p>
<pre class="brush: bash; light: true; title: ; notranslate">alias ban='iptables -I INPUT -j DROP -s'
alias unban='iptables -D INPUT -j DROP -s'
</pre>
<p>После чего можно гораздо быстрее банить ip адрес командой</p>
<pre class="brush: bash; light: true; title: ; notranslate">ban 111.111.111.111</pre>
<p> и снимать бан командой</p>
<pre class="brush: bash; light: true; title: ; notranslate">unban 111.111.111.111</pre>
]]></content:encoded>
			<wfw:commentRss>http://wolf-et.ru/linux/iptables-for-dummies/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Anticaptcha balance checker</title>
		<link>http://wolf-et.ru/bash/anticaptcha-balance-checker/</link>
		<comments>http://wolf-et.ru/bash/anticaptcha-balance-checker/#comments</comments>
		<pubDate>Sat, 17 Jul 2010 11:04:38 +0000</pubDate>
		<dc:creator>#Wolf#</dc:creator>
				<category><![CDATA[bash]]></category>
		<category><![CDATA[anticaptcha]]></category>
		<category><![CDATA[balance]]></category>
		<category><![CDATA[check]]></category>
		<category><![CDATA[curl]]></category>
		<category><![CDATA[wget]]></category>

		<guid isPermaLink="false">http://wolf-et.ru/?p=83</guid>
		<description><![CDATA[Набросал простенький скриптик на bash для чека баланса антикапчи с использованием curl/wget. или однострочный вариант:]]></description>
			<content:encoded><![CDATA[<p>Набросал простенький скриптик на bash для чека баланса антикапчи с использованием curl/wget.</p>
<pre class="brush: bash; title: ; notranslate">
#!/bin/bash
login=&quot;your_login_here&quot;
pword=&quot;your_password_here&quot;
post_string=&quot;login=${login}&amp;amp;password=${pword}&quot;
url=&quot;http://antigate.com/panel.php&quot;

which curl &gt; /dev/null
if [ $? -eq 0 ]; then
        #echo &quot;Using curl...&quot;
        GET_CMD=&quot;curl -sd &quot;
else
which wget &gt; /dev/null
   if [ $? -eq 0 ]; then
                #echo &quot;Using wget...&quot;
                GET_CMD=&quot;wget -q -O - --post-data &quot;
        else
                echo &quot;Could not find wget or curl&quot;
                exit 2
        fi
fi
respone=`${GET_CMD} ${post_string} ${url}|  sed -n -e 's/.*&lt;span class=\&quot;hlinks\&quot;&gt;\(.*\)&lt;\/span&gt;.*/\1/p'`
echo &quot;Ваш баланс: ${respone}&quot;
</pre>
<p>или однострочный вариант:</p>
<pre class="brush: bash; light: true; title: ; notranslate">curl -sd &quot;login=your_login_here&amp;amp;password=your_password_here&quot; http://antigate.com/panel.php |  sed -n -e 's/.*&lt;span class=\&quot;hlinks\&quot;&gt;\(.*\)&lt;\/span&gt;.*/\1/p'
</pre>
]]></content:encoded>
			<wfw:commentRss>http://wolf-et.ru/bash/anticaptcha-balance-checker/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Просматриваем скрытые фото Вконтакте</title>
		<link>http://wolf-et.ru/php/prosmatrivaem-skrytye-foto-vkontakte/</link>
		<comments>http://wolf-et.ru/php/prosmatrivaem-skrytye-foto-vkontakte/#comments</comments>
		<pubDate>Mon, 28 Jun 2010 02:06:16 +0000</pubDate>
		<dc:creator>#Wolf#</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[noshow]]></category>
		<category><![CDATA[vk]]></category>
		<category><![CDATA[vkontakte]]></category>
		<category><![CDATA[скрытые фото]]></category>
		<category><![CDATA[фото]]></category>
		<category><![CDATA[фотография защищена настройками приватности]]></category>

		<guid isPermaLink="false">http://wolf-et.ru/?p=65</guid>
		<description><![CDATA[Довольно таки старый "баг" контакта, позволяющий просматривать закрытые фото (aka "Фотография защищена настройками приватности"). Как это работает? Берем нашу фотографию, которую хотим увидеть, ищем в URL ее id(через "_", например 111111_111111) Заходим на свою стену и пишем: [[photo111111_111111]]qwert (после ]] обязательно необходимо добавить какую-нибудь комбинацию символов) В итоге на стену будет отправлено превью нашей фотографии, [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-67" title="noshow" src="http://wolf-et.ru/wp-content/uploads/2010/06/noshow.gif" alt="" /></p>
<p>Довольно таки старый "баг" контакта, позволяющий просматривать закрытые фото (aka "<strong>Фотография защищена настройками приватности</strong>").<br />
Как это работает?</p>
<p>Берем нашу фотографию, которую хотим увидеть,<br /> ищем в URL ее id(через "<strong>_</strong>", например 111111_111111)<br />
Заходим на свою стену и пишем:<br />
<code><font color="green"><strong>[[photo111111_111111]]qwert</strong></font></code><br />
(после <font color="green"><strong>]]</strong></font> обязательно необходимо добавить какую-нибудь комбинацию символов)<br />
В итоге на стену будет отправлено превью нашей фотографии, по клику на которое мы получим полное фото. После этого запись на стене можно удалить.<br />
Слудующий скрипт выполняет все вышеописанные действия автоматически, от вас только требуется указать ссылку, например:<br />
<code><font color="green"><br />
<strong>http://vk.com/photos.php?act=show&#038;id=17555451_140583084&#038;uid=10824648</strong></font><br />
или<font color="green"><br />
<strong>http://vk.com/photo17555451_140583084</strong><br />
</font></code><br />
(Ссылки в примерах случайные - следовательно неработоспособные)</p>
<pre class="brush: php; title: ; notranslate">
&lt; ?php
header('Content-Type: text/html; charset=utf-8');
echo '&lt;form method=&quot;get&quot;&gt;&lt;input type=&quot;text&quot; name=&quot;url&quot; size=&quot;50&quot;/&gt;&lt;input type=&quot;submit&quot; value=&quot;GET&quot;/&gt;';
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,&quot;Mozilla/5.0(Windows;U;WindowsNT5.1;ru;rv:1.9.0.4)Gecko/2008102920AdCentriaIM/1.7Firefox/3.0.4&quot;);
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=&quot;&quot;;
      for($i=0;$i&lt; $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&lt;$num;$i++){
$t.=$a[array_rand($a)];
}
return $t;
}
//act=a_post_wall&amp;hash=c1ac3250fd1533fdda&amp;message=12313313&amp;to_id=197445970603&amp;top_id=&amp;type=0&amp;old=1
$result=iconv(&quot;windows-1251&quot;,&quot;UTF-8&quot;,post('http://vk.com/login.php','act=login&amp;success_url=&amp;fail_url=&amp;try_to_login=1&amp;to=&amp;vk=&amp;email='.$email.'&amp;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&amp;hash='.decode($data[2]).'&amp;message='.urlencode('[[photo'.$photo[0].']]').'test&amp;to_id='.$data[1].'&amp;top_id=&amp;type=0&amp;old=1');//отправляем
//print_r($data);
$regxp='#id=\\\&quot;wallphoto_src'.$photo[0].'\\\&quot; value=\\\&quot;(.*?)\\\&quot;\s\\\/&gt;#';
preg_match_all($regxp, $r, $m);
preg_match_all('#deletePost\(([\d]+),[\s]?([\d]+),[\s]?\'([a-z0-9]{18})\'\)#is',$r,$del);
$img=str_replace(&quot;\\&quot;,&quot;&quot;,$m[1][0]);
post('http://vk.com/wall.php','act=a_delete&amp;oid='.$del[2][0].'&amp;cid='.$del[1][0].'&amp;hash='.$del[3][0].'&amp;old=1');//удаляем
echo '&lt;img src=&quot;'.$img.'&quot; /&gt;';
?&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://wolf-et.ru/php/prosmatrivaem-skrytye-foto-vkontakte/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>VK photos dumper</title>
		<link>http://wolf-et.ru/php/vk-photos-dumper/</link>
		<comments>http://wolf-et.ru/php/vk-photos-dumper/#comments</comments>
		<pubDate>Sun, 14 Feb 2010 11:44:34 +0000</pubDate>
		<dc:creator>#Wolf#</dc:creator>
				<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://wolf-et.ru/wp/?p=52</guid>
		<description><![CDATA[Сегодня мне понадобилось сохранить все фотографии из одного альбома ВКонтакте. Кратко опишу: Указываете ссылку на одну из фотографий в альбоме (пример vk.com/photo112028_151118304), и скрипт парсит javascript массив с url'ами изображений. Для этого необходимо включить "Ускоренный режим просмотра фотографий", что мы и делаем устаналивая в куках значение remixnotajaxphotos равное нулю. В итоге полученный массив с url'ами [...]]]></description>
			<content:encoded><![CDATA[<p>Сегодня мне понадобилось сохранить все фотографии из одного альбома ВКонтакте.<br />
<img alt="" src="http://wolf-et.ru/images/owlvk.jpg" title="owl" class="aligncenter" width="396" height="342" /><br />
Кратко опишу:<br />
Указываете ссылку на одну из фотографий в альбоме (пример vk.com/photo112028_151118304),<br />
и скрипт парсит javascript массив с url'ами изображений.<br />
Для этого необходимо включить "<strong>Ускоренный режим просмотра фотографий</strong>",<br />
что мы и делаем устаналивая в куках значение <strong>remixnotajaxphotos</strong> равное нулю. В итоге полученный массив с url'ами картинок качаем в указанную директорию.</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
set_time_limit(0);

$email='my_mail@gmail.com'; //ваш логин
$pass='my_password'; //ваш пароль
$albumurl='http://vk.com/photo111111_111111'; //ссылка на одну фотогарфию из альбома
$wdir=$_SERVER['DOCUMENT_ROOT'].'/vk'; // get full path. дописываем структуру папок от корня(/vk)
function post($url,$post=false,$refer=false){ //сопсно функция <img src='http://wolf-et.ru/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />
$ch=curl_init($url);
curl_setopt($ch,CURLOPT_USERAGENT,&quot;Mozilla/5.0(Windows;U;WindowsNT5.1;ru;rv:1.9.0.4)Gecko/2008102920AdCentriaIM/1.7Firefox/3.0.4&quot;);
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_HEADER,1);//заголовки
curl_setopt($ch,CURLOPT_POSTFIELDS,$post);
curl_setopt($ch,CURLOPT_REFERER,$refer);
curl_setopt($ch,CURLOPT_COOKIE,'remixnotajaxphotos=0;'); //(Включаем ускоренный режим просмотра фотографий)ОБЯЗАТЕЛЬНО!
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;
}
if(!file_exists($wdir)) //существует ли директория?
{if(!mkdir($wdir,0777,TRUE)) //НЕТ. пытаемся создать
{die('Cannot create folder &lt;b&gt;&lt;fontcolor=&quot;red&quot;&gt;'.$wdir.'&lt;/font&gt;&lt;/b&gt;.
Please change permissions on&lt;b&gt;777&lt;/b&gt;.');}}// не получилось =( die
$result=post('http://vk.com/login.php',
'act=login&amp;success_url=&amp;fail_url=&amp;try_to_login=1&amp;to=&amp;vk=&amp;email='.$email.'&amp;pass='.$pass,
'http://vk.com/');//auth
$result1=post($albumurl,false,'http://vk.com/profile.php');//go to album url
preg_match_all('#\\[&quot;(.*?)&quot;,[\\s]?&quot;(.*?)&quot;,[\\s]?&quot;(.*?)&quot;\\]#i',$result1,$urls);//парсим фотки
foreach($urls[3] as $val){
$val=str_replace(&quot;\\&quot;,&quot;&quot;,$val);//удаляем экранирование символа &quot;/&quot;
preg_match('#([x|m]_.*?)[.]([jpg|gif|png$]{3})#i',$val,$names); //парсии имя файла и расширение
file_put_contents($wdir.'/'.$names[1].'.'.$names[2],file_get_contents($val));//качаем картинку и записываем в папку
}
?&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://wolf-et.ru/php/vk-photos-dumper/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Kinopoisk.ru Parser</title>
		<link>http://wolf-et.ru/php/kinopoisk-ru-parser/</link>
		<comments>http://wolf-et.ru/php/kinopoisk-ru-parser/#comments</comments>
		<pubDate>Sun, 03 Jan 2010 08:44:12 +0000</pubDate>
		<dc:creator>#Wolf#</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[curl]]></category>
		<category><![CDATA[kinopoisk]]></category>
		<category><![CDATA[kinopoisk.ru]]></category>
		<category><![CDATA[parser]]></category>
		<category><![CDATA[кинопоиск]]></category>
		<category><![CDATA[парсер]]></category>

		<guid isPermaLink="false">http://wolf-et.ru/wp/?p=48</guid>
		<description><![CDATA[Недавно мой знакомый (журналист на новостном портале) попросил меня "накатать" небольшой скриптик, для упрощения рутиной работы (копипастинг данных и оборачивание в BB-code). Парсит нижеприведенный список значений: 1)Назывние 2)Оригинальное название 3)Год 4)Страна 5)Слоган 6)Режиссер 7)Сценарий 8)Продюсер 9)Оператор 10)Композитор 11)Жанр 12)Бюджет 13)Сборы в США 14)Сборы в мире 15)Сборы в России 16)Премьера (мир) 17)Премьера (РФ) 18)Релиз на DVD [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter" title="kinopoisk" src="http://wolf-et.ru/images/kinopoisk.jpg" alt="kinopoisk" width="300" height="300" /><br />
Недавно мой знакомый (журналист на новостном портале) попросил меня "накатать" небольшой скриптик, для упрощения рутиной работы (копипастинг данных и оборачивание в BB-code).<br />
Парсит нижеприведенный список значений:<br />
1)Назывние<br />
2)Оригинальное название<br />
3)Год<br />
4)Страна<br />
5)Слоган<br />
6)Режиссер<br />
7)Сценарий<br />
8)Продюсер<br />
9)Оператор<br />
10)Композитор<br />
11)Жанр<br />
12)Бюджет<br />
13)Сборы в США<br />
14)Сборы в мире<br />
15)Сборы в России<br />
16)Премьера (мир)<br />
17)Премьера (РФ)<br />
18)Релиз на DVD<br />
19)Релиз на Blu-Ray<br />
20)Рейтинг MPAA<br />
21)Время<br />
22)Описание<br />
23)Рейтинг Кинопоиск<br />
24)Рейтинг IMDb<br />
25)Картинка(логотип фильма)<br />
26)Ссылку на трейлер<br />
27)Картинку к трейлеру<br />
Парсер съедает ссылки вида:  <strong>http://www.kinopoisk.ru/level/1/film/251733/</strong> и просто ID фильма: <strong>251733</strong></p>
<p>Авторизация необходима для обхода бана.</p>
<p>Код:</p>
<pre class="brush: php; title: ; notranslate">
&lt;form method='get'&gt;
&lt;input type='text' name='id' value='&lt;?php echo $m[0];?&gt;' size=&quot;40&quot;&gt;
&lt;input type='submit' value='get' name='submit'&gt;
&lt;/form&gt;
&lt;?
#################################
# Kinopoisk.ru parser
# by #Wolf#
# http://wolf-et.ru/
#################################
if(empty($_REQUEST['id'])){die(&quot;die&quot;);}
//header (&quot;Content-type: text/html; charset=utf-8&quot;);
$user='login';
$password='password';
   function post($url,$post,$refer)
	{
	if($post==null){$post=false;}
       $ch = curl_init($url);
       curl_setopt($ch, CURLOPT_USERAGENT, &quot;Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.4) Gecko/2008102920 AdCentriaIM/1.7 Firefox/3.0.4&quot;);
       curl_setopt($ch, CURLOPT_HEADER, 0);
       curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
       curl_setopt($ch, CURLOPT_REFERER, $refer);
       curl_setopt($ch, CURLOPT_COOKIEJAR, &quot;./cookie.txt&quot;);
       curl_setopt($ch, CURLOPT_COOKIEFILE, &quot;./cookie.txt&quot;);
       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.'&amp;shop_user[pass]='.$password.'&amp;shop_user[mem]=on&amp;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(&quot;cp1251&quot;, &quot;utf8&quot;, $result);
	//echo $result;
	$parse=array(
	'name' =&gt;         '#&lt;h1 style=\&quot;margin: 0; padding: 0\&quot; class=&quot;moviename-big&quot;&gt;(.*?)&lt;/h1&gt;#si',
	'originalname'=&gt;  '#13px&quot;&gt;(.*?)&lt;/span&gt;#si',
	'year' =&gt;         '#год&lt;/td&gt;&lt;td class=\&quot;\&quot;&gt;(.*?)&lt;/td&gt;&lt;/tr&gt;#si',
	'country' =&gt;      '#страна&lt;/td&gt;&lt;td class=\&quot;\&quot;&gt;(.*?)&lt;/td&gt;&lt;/tr&gt;#si',
	'slogan' =&gt;       '#слоган&lt;/td&gt;&lt;td style=&quot;color: \#555&quot;&gt;(.*?)&lt;/td&gt;&lt;/tr&gt;#si',
	'director' =&gt;     '#режиссер&lt;/td&gt;&lt;td&gt;(.*?)&lt;/td&gt;&lt;/tr&gt;#si',
	'script' =&gt;       '#сценарий&lt;/td&gt;&lt;td&gt;(.*?)&lt;/td&gt;&lt;/tr&gt;#si',
	'producer' =&gt;     '#продюсер&lt;/td&gt;&lt;td&gt;(.*?)&lt;/td&gt;&lt;/tr&gt;#si',
	'operator' =&gt;     '#оператор&lt;/td&gt;&lt;td&gt;(.*?)&lt;/td&gt;&lt;/tr&gt;#si',
	'composer' =&gt;     '#композитор&lt;/td&gt;&lt;td&gt;(.*?)&lt;/td&gt;&lt;/tr&gt;#si',
	'genre' =&gt;        '#жанр&lt;/td&gt;&lt;td&gt;(.*?)&lt;/td&gt;&lt;/tr&gt;#si',
	'budget' =&gt;       '#бюджет&lt;/td&gt;&lt;td class=\&quot;dollar\&quot;&gt;(.*?)&lt;/td&gt;&lt;/tr&gt;#si',
	'usa_charges' =&gt;  '#США&lt;/td&gt;&lt;td class=\&quot;dollar\&quot;&gt;(.*?)&lt;/td&gt;&lt;/tr&gt;#si',
	'world_charges'=&gt; '#мире&lt;/td&gt;&lt;td class=\&quot;dollar\&quot;&gt;(.*?)&lt;/td&gt;&lt;/tr&gt;#si',
	'rus_charges' =&gt;  '#России&lt;/td&gt;&lt;td class=\&quot;dollar\&quot;&gt;(.*?)&lt;/td&gt;&lt;/tr&gt;#si',
	'world_premiere'=&gt;'#мир\)&lt;/td&gt;&lt;td class=\&quot;calendar\&quot;&gt;(.*?)&lt;/td&gt;&lt;/tr&gt;#si',
	'rus_premiere' =&gt; '#РФ\)&lt;/td&gt;&lt;td class=&quot;calendar&quot;&gt;(.*?)&lt;/td&gt;&lt;/tr&gt;#si',
	'dvd' =&gt;          '#dvd&quot;&gt;(.*?)&lt;/td&gt;&lt;/tr&gt;#is',
	'bluray' =&gt;       '#bluray&quot;&gt;(.*?)&lt;/td&gt;&lt;/tr&gt;#is',
	'MPAA' =&gt;         '#MPAA&lt;/td&gt;&lt;td class=\&quot;[\S]{1,100}\&quot;&gt;&lt;a href=\'[\S]{1,100}\'&gt;&lt;img src=\'/[\S]{1,100}\' height=11 alt=\'(.*?)\' border=0#si',
	'time' =&gt;         '#id=&quot;runtime&quot;&gt;(.*?)&lt;/td&gt;&lt;/tr&gt;#si',
	'description' =&gt;  '#&lt;span class=\&quot;_reachbanner_\&quot;&gt;(.*?)&lt;/span&gt;#si',
	'imdb' =&gt;         '#IMDB:\s(.*?)&lt;/div&gt;#si',
	'kinopoisk' =&gt;    '#text-decoration: none&quot;&gt;(.*?)&lt;span#si',
	'kp_votes' =&gt;     '#&lt;span style=\&quot;font:100 14px tahoma, verdana\&quot;&gt;(.*?)&lt;/span&gt;#si',
	 );

   $new=array();
   foreach($parse as $index =&gt; $value)
   {
   preg_match($value,$result,$matches);
   $new[$index]=preg_replace(&quot;#&lt;a.+?&gt;(.+?)&lt;/a&gt;#is&quot;,&quot;$1&quot;,$matches[1]);
   }
preg_match('#getTrailer\(&quot;(.*?)&quot;,&quot;(.*?)&quot;,&quot;(.*?)&quot;,&quot;[0-9]+&quot;,&quot;[0-9]+&quot;,&quot;(.*?)&quot;,&quot;&quot;\);#i',$result,$trailer);
  /////////////////////////print//////////////////////////////
echo '[img]http://www.kinopoisk.ru/images/film/'.$m[0].'.jpg[/img]&lt;br /&gt;';
echo '[Ссылка на трейлер] http://'.$trailer[4].'.kinopoisk.ru/trailers/flv/'.$trailer[2].'&lt;br /&gt;';
echo '[Трейлер preview] http://'.$trailer[4].'.kinopoisk.ru/trailers/flv/'.$trailer[3].'&lt;br /&gt;';
echo '[b]Назывние:[/b]'.$new['name'].'&lt;br /&gt;';
echo '[b]Оригинальное название:[/b]'.$new['originalname'].'&lt;br /&gt;';
echo '[b]Год:[/b]'.$new['year'].'&lt;br /&gt;';
echo '[b]Страна:[/b]'.$new['country'].'&lt;br /&gt;';
echo '[b]Слоган:[/b]'.$new['slogan'].'&lt;br /&gt;';
echo '[b]Режиссер:[/b]'.$new['director'].'&lt;br /&gt;';
echo '[b]Сценарий:[/b]'.$new['script'].'&lt;br /&gt;';
echo '[b]Продюсер:[/b]'.$new['producer'].'&lt;br /&gt;';
echo '[b]Оператор:[/b]'.$new['operator'].'&lt;br /&gt;';
echo '[b]Композитор:[/b]'.$new['composer'].'&lt;br /&gt;';
echo '[b]Жанр:[/b]'.$new['genre'].'&lt;br /&gt;';
echo '[b]Бюджет:[/b]'.$new['budget'].'&lt;br /&gt;';
echo '[b]Сборы в США:[/b]'.$new['usa_charges'].'&lt;br /&gt;';
echo '[b]Сборы в мире:[/b]'.$new['world_charges'].'&lt;br /&gt;';
echo '[b]Сборы в России:[/b]'.$new['rus_charges'].'&lt;br /&gt;';
echo '[b]Премьера (мир):[/b]'.$new['world_premiere'].'&lt;br /&gt;';
echo '[b]Премьера (РФ):[/b]'.$new['rus_premiere'].'&lt;br /&gt;';
echo '[b]Релиз на DVD:[/b]'.$new['dvd'].'&lt;br /&gt;';
echo '[b]Релиз на Blu-Ray:[/b]'.$new['bluray'].'&lt;br /&gt;';
echo '[b]Рейтинг MPAA:[/b]'.$new['MPAA'].'&lt;br /&gt;';
echo '[b]Время:[/b]'.$new['time'].'&lt;br /&gt;';
echo '[b]Описание:[/b]'.$new['description'].'&lt;br /&gt;';
echo '[b]Рейтинг Кинопоиск:[/b]'.$new['kinopoisk'].'('.$new['kp_votes'].' )&lt;br /&gt;';
echo '[b]Рейтинг IMDb:[/b]'.$new['imdb'].'&lt;br /&gt;';
?&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://wolf-et.ru/php/kinopoisk-ru-parser/feed/</wfw:commentRss>
		<slash:comments>42</slash:comments>
		</item>
		<item>
		<title>Happy new year 0x7DA!</title>
		<link>http://wolf-et.ru/news/happy-new-year-0x7da/</link>
		<comments>http://wolf-et.ru/news/happy-new-year-0x7da/#comments</comments>
		<pubDate>Thu, 31 Dec 2009 08:35:09 +0000</pubDate>
		<dc:creator>#Wolf#</dc:creator>
				<category><![CDATA[Новости]]></category>

		<guid isPermaLink="false">http://wolf-et.ru/wp/?p=43</guid>
		<description><![CDATA[С праздником, дорогие друзья! /me загадал на новый год инвайт на habrahabr Большое спасибо inlanger'y за предоставленный инвайт! Смотрим HEX календарик с хабра :]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;">С праздником, дорогие друзья!<br />
<img class="aligncenter" title="0x7DA" src="http://wolf-et.ru/images/hny.jpg" alt="0x7DA" width="391" height="383" /><br />
<del datetime="2009-12-31T08:31:27+00:00">/me загадал на новый год инвайт на habrahabr</del></p>
<p>Большое спасибо <a href="http://inlanger.habrahabr.ru/">inlanger'y</a> за предоставленный инвайт!</p>
<p style="text-align: center;">Смотрим <a href="http://habrahabr.ru/blogs/design/79696/">HEX календарик</a> с хабра :]<br />
<img class="aligncenter" src="http://anatolyrr.ru/habr/2010/preview.png" alt="hex calendar" /></p>
]]></content:encoded>
			<wfw:commentRss>http://wolf-et.ru/news/happy-new-year-0x7da/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Database Caching 15/20 queries in 0.007 seconds using memcached

Served from: wolf-et.ru @ 2012-05-21 13:14:10 -->
