<?php
/*
* Динамичный код. Инструкция по установке.
* 1. Вам нужно сохранить данный код в отдельный PHP-файл.
* 2. В простейшем случае, если вы хотите выводить один рекламный блок на страницу,
* то достаточно просто сделать include(); файла с кодом.
* 3. Если рекламных блоков будет несколько, то делаете один инклуд в том месте, где будет первый рекламный блок,
* а далее для вывода рекламы используйте данную функцию: echo mobi_ads($client_ID, $client_CODE);
* Внимание! Два раза инклудить этот код на странице не получится, и будет выдавать fatal error.
*
* По всем возникшим вопросам/поблемам с кодом обращайтесь в тех-поддержку, через систему тикетов.
*/
#error_reporting(0);
define('START_TIME',microtime(true));
define('NL',chr(13).chr(10));
define('ADS_TIMEOUT',3);
#ID площадки
$client_ID = '1574';
#Секретный уникальный код площадки
$client_CODE = '1268150108';
if(!function_exists('mobi_ads'))
{
function mobi_ads($id, $key) {
$headers = get_http_headers();
foreach(array_keys(array_intersect($headers,
array('Cookie', 'Authorization'))) as $key)unset($headers[$key]);
$info = serialize(array('id' => intval($id),'ip' =>
$_SERVER['REMOTE_ADDR'],'headers' => $headers,));
$post = 'secure='.md5($key.'/'.$info.'/'.$key).'&info='.urlencode($info);
return ADS_get_response($post);
}
}
if(!function_exists('get_http_headers'))
{
function get_http_headers() {
foreach ($_SERVER as $name => $value)
{if(strncmp($name, 'HTTP_', 5) == 0)
{$headers[str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ',
substr($name, 5)))))] = $value;}}
return $headers;
}
}
if(!function_exists('ADS_get_response'))
{
function ADS_get_response($POST = '', $HOST = 'mobiads.ru:80', $PATH = '/ads.php') {
$URL = 'http://'.$HOST.$PATH;
//Socket start
$request = 'POST '.$PATH.' HTTP/1.0'.NL.
'Host: '.$HOST.''.NL.'Connection: Close'.NL.
'Content-Type: application/x-www-form-urlencoded'.NL.
'Content-Length: '.strlen($POST).NL.NL.$POST;
if(false !== $socket = fsockopen($HOST, $port = 80, $errno, $errstr, ADS_TIMEOUT))
{
fwrite($socket, $request);
$contents = '';
while(!feof($socket)){$contents .= fread($socket, 1024);}
fclose($socket);
$ex = explode(NL.NL,trim($contents));
if(strpos($ex[0],'200 OK') === false)
$contents = ''; else $contents = $ex[1];
return $contents.NL.'<!--so-->';
}
else
{
#return '<!--ERROR: '.$errstr.' ('.$errno.')-->';
}
//Socket end
//file_get_contents + context start
if (version_compare(PHP_VERSION, '5.0.0', '>=')) {
$context = stream_context_create(array (
'http' => array (
'method' => 'POST',
'header' => 'Content-Type: application/x-www-form-urlencoded'.PHP_EOL,
'content' => $POST,
'timeout' => ADS_TIMEOUT,
),
));
$contents = file_get_contents($URL,false,$context);
if(strpos($http_response_header[0],'200 OK') === false)
$contents = '';
return $contents.NL.'<!--fg-->';
}
//file_get_contents + context end
//Curl start
if(
in_array('curl', get_loaded_extensions())&&
function_exists("curl_init") &&
function_exists("curl_setopt") &&
function_exists("curl_exec") &&
function_exists("curl_close")) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $URL);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $POST);
curl_setopt($ch, CURLOPT_TIMEOUT, ADS_TIMEOUT);
$contents = curl_exec($ch);
$header = curl_getinfo($ch);
curl_close($ch);
if($header['http_code'] != 200)
$contents = '';
return $contents.NL.'<!--cu-->';
}
//Curl end
}
}
echo mobi_ads($client_ID, $client_CODE);
echo NL.'<!--MOBIADS '.sprintf("%f", microtime(true)-START_TIME).'-->'.NL;
?>