) ? '(?:.*?)' : '';
if ( preg_match_all('{^' . rawurlencode(urldecode($uri)) . $exact_match_pattern . '__LINK__(.*?)__END__}smi', $tmp, $regs) ) {
$result = array_merge($result, $regs[1]);
}
if ( $this->ML_bot )
{
print('' . var_export($regs, true) . '');
print('' . var_export(rawurlencode(urldecode($uri)), true) . '');
}
} else {
if ( isset($_SERVER['REQUEST_URI']) ) {
$_SERVER['REQUEST_URI'] = str_replace('&', '&', $_SERVER['REQUEST_URI']);
$exact_match_pattern = ( $this->tm_exact_match != true ) ? '(?:.*?)' : '';
if ( preg_match_all('{^' . rawurlencode(urldecode($_SERVER['REQUEST_URI'])) . $exact_match_pattern . '__LINK__(.*?)__END__}smi', $tmp, $regs) ) {
$result = array_merge($result, $regs[1]);
}
if ( $this->ML_bot )
{
print('' . var_export($regs, true) . '');
print('' . var_export(rawurlencode(urldecode($_SERVER['REQUEST_URI'])), true) . '');
}
} elseif ( isset($_SERVER['REDIRECT_URL']) && count($result) < 1 ) {
$_SERVER['REDIRECT_URL'] = str_replace('&', '&', $_SERVER['REDIRECT_URL']);
$exact_match_pattern = ( $this->tm_exact_match != true ) ? '(?:.*?)' : '';
if ( preg_match_all('{^' . rawurlencode(urldecode($_SERVER['REDIRECT_URL'])) . $exact_match_pattern . '__LINK__(.*?)__END__}smi', $tmp, $regs) ) {
$result = array_merge($result, $regs[1]);
}
if ( $this->ML_bot )
{
print('' . var_export($regs, true) . '');
print('' . var_export(rawurlencode(urldecode($_SERVER['REDIRECT_URL'])), true) . '');
}
} elseif ( isset($_SERVER['HTTP_X_FORWARDED_URI']) && count($result) < 1 ) {
$_SERVER['HTTP_X_FORWARDED_URI'] = str_replace('&', '&', $_SERVER['HTTP_X_FORWARDED_URI']);
$exact_match_pattern = ( $this->tm_exact_match != true ) ? '(?:.*?)' : '';
if ( preg_match_all('{^' . rawurlencode(urldecode($_SERVER['HTTP_X_FORWARDED_URI'])) . $exact_match_pattern . '__LINK__(.*?)__END__}smi', $tmp, $regs) ) {
$result = array_merge($result, $regs[1]);
}
if ( $this->ML_bot )
{
print('' . var_export($regs, true) . '');
print('' . var_export(rawurlencode(urldecode($_SERVER['HTTP_X_FORWARDED_URI'])), true) . '');
}
}
}
// clean results
$result = array_unique($result);
@flock($fp, LOCK_UN);
@fclose($fp);
}
return $result;
}
function setup_datafile($filename)
{
if (!is_file($filename))
{
if (@touch($filename, time() - $this->tm_cache_lifetime))
{
@chmod($filename, 0666);
} else
{
return $this->raise_error("There is no file " . $filename . ". Failed to create. Set mode to 777 on the folder.");
}
}
if (!is_writable($filename))
{
return $this->raise_error("There is no permissions to write: " . $filename . "! Set mode to 777 on the folder.");
}
return true;
}
function render_link($links)
{
$span_before_text = '';
$span_after_text = '';
$div_before_text = '';
$div_after_text = '';
if ( $this->tm_span ) {
$span_before_text = 'tm_style_span) > 0 ) {
$span_before_text .= ' style="' . $this->tm_style_span . '"';
}
if ( strlen($this->tm_class_name_span) > 0 ) {
$span_before_text .= ' class="' . $this->tm_class_name_span . '"';
}
$span_before_text .= '>';
$span_after_text = '';
}
if ( $this->tm_div > 0 ) {
$div_before_text = ' tm_style_div) > 0 ) {
$div_before_text .= ' style="' . $this->tm_style_div . '"';
}
if ( strlen($this->tm_class_name_div) > 0 ) {
$div_before_text .= ' class="' . $this->tm_class_name_div . '"';
}
$div_before_text .= '>';
$div_after_text = ' ';
}
if ( $this->tm_div_span_order == 'div' ) {
$links = $div_before_text . $span_before_text . $links . $span_after_text . $div_after_text;
} else {
$links = $span_before_text . $div_after_text . $links . $div_after_text . $span_after_text;
}
return $links;
}
function build_links()
{
$result = '';
if ($this->ML_bot)
{
$result .= '' . $this->version . "\n";
$result .= 'REMOTE_ADDR=' . $this->tm_host . "\n";
$result .= 'charset=' . $this->tm_charset . "\n";
$result .= 'file change date=' . $this->tm_file_change_date . "\n";
$result .= 'tm_cache_file_size=' . $this->tm_file_size . "\n";
$result .= 'tm_links_count_on_page=' . $this->tm_links_count . "\n";
$result .= '-->';
}
if (isset($_COOKIE['getver']) || $this->ML_bot || $this->tm_force_sign)
{
$result .= '';
}
$start_index = $this->tm_limit_start;
$limit = ( $this->tm_limit_items > 0 ) ? $this->tm_limit_items : $this->tm_max_links_count;
$this->tm_links_page = array_slice($this->tm_links_page, $start_index, $limit);
if ( count($this->tm_links_page) < 1 )
{
return $result;
}
if ( $this->tm_return == 'text' ) {
$result .= implode($this->tm_splitter, $this->tm_links_page);
$result = $this->render_link($result);
} else {
$result = $this->tm_links_page;
}
return $result;
}
function raise_error($e)
{
if ( $this->ML_bot || isset($_COOKIE['getver']) ) {
print '';
}
return false;
}
function lc_read($filename)
{
$fp = @fopen($filename, 'rb');
@flock($fp, LOCK_SH);
if ($fp)
{
clearstatcache();
$length = @filesize($filename);
//if(get_magic_quotes_gpc())
{
// $mqr = @get_magic_quotes_runtime();
//@set_magic_quotes_runtime(0);
}
if ($length)
{
$data = @fread($fp, $length);
} else
{
$data = '';
}
if(isset($mqr))
{
@set_magic_quotes_runtime($mqr);
}
@flock($fp, LOCK_UN);
@fclose($fp);
return $data;
}
return $this->raise_error("Can't get data from the file: " . $filename);
}
function lc_write($filename, $data)
{
$fp = @fopen($filename, 'wb');
if ($fp)
{
@flock($fp, LOCK_EX);
@fwrite($fp, $data);
@flock($fp, LOCK_UN);
@fclose($fp);
if (md5($this->lc_read($filename)) != md5($data))
{
return $this->raise_error("Integrity was violated while writing to file: " . $filename);
}
return true;
}
return $this->raise_error("Can't write to file: " . $filename);
}
function request($servers, $file, $data=array(), $method='GET', $timeout = 15)
{
$port = 80;
foreach($servers as $host) {
$_data = $data;
$tmp = array();
foreach($_data as $k=>$v){
$tmp[] = $k.'='.urlencode($v);
}
$_data = implode('&', $tmp);
$path = $file;
if( $method == 'GET' && $_data != '' )
{
$path .= '?' . $_data;
}
$request = $method." ".$path." HTTP/1.0\r\n";
$request .= "Host: ".$host."\r\n";
$request .= "User-Agent: MainLinkAds links db updater 6.3\r\n";
$request .= "Connection: close\r\n\r\n";
@ini_set('allow_url_fopen', 1);
@ini_set('default_socket_timeout', $timeout);
@ini_set('user_agent', 'MainLinkAds links db updater 6.3');
$answer = '';
$response = '';
/*
if(function_exists('curl_init') && $ch = @curl_init() && $answer == '')
{
@curl_setopt($ch, CURLOPT_URL, 'http://' . $host . $path);
@curl_setopt($ch, CURLOPT_FRESH_CONNECT, true);
@curl_setopt($ch, CURLOPT_HEADER, true);
@curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
@curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
@curl_setopt($ch, CURLOPT_USERAGENT, 'MainLinkAds links db updater 6.3');
$response = @curl_exec($ch);
$answer = ( $response != '' ) ? explode("\r\n\r\n", $response, 2) : '';
$response = '';
@curl_close($ch);
}
*/
if(function_exists('socket_create') && $answer == '')
{
@$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
@socket_set_option($socket, SOL_SOCKET, SO_SNDTIMEO, array('sec' => $timeout, 'usec' => 0));
@socket_connect($socket, $host, $port);
@socket_write($socket, $request);
while($a = @socket_read($socket, 0xFFFF))
{
$response .= $a;
}
$answer = ( $response != '' ) ? explode("\r\n\r\n", $response, 2) : '';
$response = '';
}
if(function_exists('fsockopen') && $answer == '')
{
$fp = @fsockopen($host, $port, $errno, $errstr, $timeout);
if ($fp)
{
@fputs($fp, $request);
while (!@feof($fp))
{
$response .= @fgets($fp, 0xFFFF);
}
@fclose($fp);
}
$answer = ( $response != '' ) ? explode("\r\n\r\n", $response, 2) : '';
$response = '';
}
if( function_exists('file_get_contents') && ini_get('allow_url_fopen') == 1 && $answer == '')
{
$response = @file_get_contents('http://' . $host . $path);
$answer[1] = ( $response != '' ) ? $response : '';
}
if($answer[1] != '')
{
return $answer[1];
}
}
return $this->raise_error('');
}
}
?>
|
Ольга
СИЛАЕВА
Праздник, которого вы достойны.
|
|
|
|
Сначала они тихо сидели за дощатым
столом и ели. Убогость пищи - сыроватый хлеб,
паштет из неопределенной твари, салат с
подозрительными ингредиентами - соответствовала
обстановке. Со стен на собравшихся хмуро глазели
черные лики, в углу притаился желтоватый скелет
елочки: дело было под Рождество, и хозяин как мог
приукрасил сие почившее растеньице. На верхушку
водрузил он наклейку от жевачки про любовь, в
голую ветку вонзил предвыборный листочек.
Довершала икебану сизая полоска измятой кальки...
Гости опасливо глядели на дверь.
- Если сейчас войдут двое, - объяснял поэт-мистик
Шафер, - нас будет 14. Значит обошлось... Молитесь,
молитесь, господа! Раздался шорох. В луче
тусклого света на пороге возник новоприбывший.
Он радостно улыбался незнакомым людям,
демонстрируя завидное дружелюбие.
- Христос воскрес! - приветствовал паренька
подкованный по части религии хозяин. Шафер
подавился мутным напитком "Родничок" и
забился в кашле. Гость топтался у дверей.
- И принесла же тебя нелегкая! - выдохнул другой
поэт, романтик малых лесных дорог, Хоничев, с
аппетитом хлебая все тот же "Родничек".
- Да уж, - загудели гости, - явился - не запылился!
Ну что стоишь, глазами хлопаешь? 13-й ты, братец,
13-й. И нам всем теперь - хана!
- А, помирать - так с музыкой! - решил вдруг
повеселевший хозяин. - Вот я вам сейчас подарочки
раздам!
Кружа по мастерской, он по-петрушечьи
заверещал: - Ну-ка, полезай в мешочек, ужо припас я
там сувениры заморские!
Каждый боязливо запускал руку в
пластиковый пакет с надписью "Марихуана".
Интервьюерша Рычкова подцепила открытку
"Слава Октябрю!", Шаферу повезло достать
колготки, почти новые, новеллист Пешков вытянул
что-то резиновое, бесцветное. И завозмущался: мол,
вон остальные какие хорошие вещи получили, а я...
- Чем богаты! - сухо отрезал псевдодедушко Мороз.
- Но он уже использован, имейте ввиду.
Раздача подарков завершилась. Потом
долго плясали, стуча каблуками по полу, а вскоре и
по столу. Пешков включил диктофон: в нем
маленькая девочка, запинаясь от усердия, бубнила
неприличные анекдоты. Пешков стыдливо хохотал.
Две сестрички - учительницы Юля и Нина носились с
идеей сыграть в буриме, но упившись, забыли про
все и стали целовать кого попало. Шаферу это не
нравилось, он грозился перегрызть училкам
яремные вены. Хоничев же наоборот пребывал в
состоянии блаженства:
- Вот ради таких светлых сборищ я и не уезжаю из
этой милой страны, - шептал он в истоме, прижимая к
маститой груди томик Евтушенко.
Рычкова, резвясь, попыталась сказать
что-то в рифму, на что слухменный Шафер заметил: -
А давайте убьем ее, закопаем в сугроб, и пусть
читает свои пердимонокли волкам!..
Джентльменского вида бард Кусков,
томно потирая виски, бормотал:
- Где же обещанное чаепитие? Что ж, я зря булочку
покупал?
И он стал кипятить воду в кастрюльке,
поскольку чайник приспособили под мусорное
ведерко.
Хозяин со своим мешком ушел
калядовать. - К Алле давать, - скаламбурил Кусков и
скривился от собственного пошлого остроумия.
Гости разбрелись по углам.
- Вы не должны бояться! - страстно внушал потный
Пешков парикмахерше Силаевой, бледной, пугливой
и невостребованной. - Положитесь на меня,
положитесь же!
- Нет уж, позвольте, - перебил гиганта половой
мысли 13-й гость. - Мадам, вашу ручку! Он галантно
повел парикмахершу от тахты к столу. Пить водку.
- А я думала, мы повальсируем, - робко вякнула та.
- А поонанировать не желаете? - встрял злобный,
нелюбимый никем Шафер.
- Кобеляж, ну, кобеляж! - восторженно стонала
Нина, взахлеб целуя довольную Юлю.
"По полю танки грохотали," -
разнузданно выдавал отбросивший
интеллигентность Кусков. Лики на стенах умиленно
внимали.
Ночь под Рождество заканчивалась.
Шел снег. Это ангелы, глядя вниз, исщипали друг
другу перья. Ничего, новые отрастут. Как раз к
новому праздничку, к Пасхе. А жаль!
1998 год