diff($now); if($diff->y>0) { $diff=$diff->y; if(($diff%100>9)&&($diff%100<21)) {$diff.=" лет";} elseif($diff%10==1) {$diff.=" год";} elseif(($diff%10<5)&&($diff%10>0)) {$diff.=" года";} else {$diff.=" лет";} } elseif($diff->m>0) { $diff=$diff->m; if(($diff%100>9)&&($diff%100<21)&&($diff==0)) {$diff.=" месяцев";} elseif($diff%10==1) {$diff.=" месяц";} elseif(($diff%10<5)&&($diff%10>0)) {$diff.=" месяца";} else {$diff.=" месяцев";} } else {$diff="менее месяца";} return $diff; } $r=$DB->query("select min(Price) as price_min,max(Price) as price_max, min(Arenda) as arenda_min,max(Arenda) as arenda_max, min(char_length(Domain)-3) as len_min,max(char_length(Domain)-3) as len_max, min(tic) as tic_min,max(tic) as tic_max, min(pr) as pr_min,max(pr) as pr_max, min(Popularity) as rate_min,max(Popularity) as rate_max, min(WS) as ws_min,max(ws) as ws_max, min(YaKEI) as yakei_min,max(YaKEI) as yakei_max, min(GKEI) as gkei_min,max(GKEI) as gkei_max, max(Registered) as age_min,min(Registered) as age_max from domain_info where Active='Y'"); $price=[]; if($f=$r->fetch_array()) { $limits["ws"]["max"]=$f["ws_max"]; $limits["yakei"]["max"]=$f["yakei_max"]; $limits["gkei"]["max"]=$f["gkei_max"]; $filter["price"]["min"]=round($f["price_min"],0); $filter["price"]["max"]=round($f["price_max"],0); $filter["arenda"]["min"]=round($f["arenda_min"],0); $filter["arenda"]["max"]=round($f["arenda_max"],0); $filter["len"]["min"]=round($f["len_min"],0); $filter["len"]["max"]=round($f["len_max"],0); $filter["tic"]["min"]=round($f["tic_min"],0); $filter["tic"]["max"]=round($f["tic_max"],0); $reg=new DateTime(($f["age_min"])); $now=new DateTime(); $diff=$reg->diff($now); $mydiff=$diff->y; $filter["age"]["min"]=round($mydiff); $reg=new DateTime(($f["age_max"])); $now=new DateTime(); $diff=$reg->diff($now); $mydiff=$diff->y; $filter["age"]["max"]=round($mydiff); $filter["gkei"]["min"]=round($f["gkei_min"],0); $filter["gkei"]["max"]=round($f["gkei_max"],0); $filter["yakei"]["min"]=round($f["yakei_min"],0); $filter["yakei"]["max"]=round($f["yakei_max"],0); $filter["ws"]["min"]=round($f["ws_min"],0); $filter["ws"]["max"]=round($f["ws_max"],0); $filter["rate"]["min"]=round($f["rate_min"],0); $filter["rate"]["max"]=round($f["rate_max"],0); $filter["price"][0]=round($f["price_min"],0);; $filter["price"][1]=round($f["price_max"],0); $filter["arenda"][0]=round($f["arenda_min"],0); $filter["arenda"][1]=round($f["arenda_max"],0); $filter["len"][0]=round($f["len_min"],0); $filter["len"][1]=round($f["len_max"],0); $filter["tic"][0]=round($f["tic_min"],0); $filter["tic"][1]=round($f["tic_max"],0); $reg=new DateTime(($f["age_min"])); $now=new DateTime(); $diff=$reg->diff($now); $mydiff=$diff->y; $filter["age"][0]=round($mydiff); $reg=new DateTime(($f["age_max"])); $now=new DateTime(); $diff=$reg->diff($now); $mydiff=$diff->y; $filter["age"][1]=round($mydiff); $filter["gkei"][0]=round($f["gkei_min"],0); $filter["gkei"][1]=round($f["gkei_max"],0); $filter["yakei"][9]=round($f["yakei_min"],0); $filter["yakei"][1]=round($f["yakei_max"],0); $filter["ws"][0]=round($f["ws_min"],0); $filter["ws"][1]=round($f["ws_max"],0); $filter["rate"][0]=round($f["rate_min"],0); $filter["rate"][1]=round($f["rate_max"],0); if (!empty($_GET)) { if(isset($_GET["price"][0])){ $filter["Expanded"]=true; $filter["price"][0]=($_GET["price"][0]); $filter["price"][1]=($_GET["price"][1]); $sql="(price>=".intval($filter["price"][0]).") and (price<=".intval($filter["price"][1]).")"; $filter["arenda"][0]=($_GET["arenda"][0]); $filter["arenda"][1]=($_GET["arenda"][1]); $sql.="and(arenda>=".intval($filter["arenda"][0]).") and (arenda<=".intval($filter["arenda"][1]).")"; $filter["gkei"][0]=($_GET["gkei"][0]); $filter["gkei"][1]=($_GET["gkei"][1]); $sql.="and(GKEI>=".intval($filter["gkei"][0]).") and (GKEI<=".intval($filter["gkei"][1]).")"; $filter["yakei"][0]=($_GET["yakei"][0]); $filter["yakei"][1]=($_GET["yakei"][1]); $sql.="and(YaKEI>=".intval($filter["yakei"][0]).") and (YaKEI<=".intval($filter["yakei"][1]).")"; $filter["rate"][0]=($_GET["rate"][0]); $filter["rate"][1]=($_GET["rate"][1]); $sql.="and(Popularity>=".intval($filter["rate"][0]).") and (Popularity<=".intval($filter["rate"][1]).")"; $filter["ws"][0]=($_GET["ws"][0]); $filter["ws"][1]=($_GET["ws"][1]); $sql.="and(ws>=".intval($filter["ws"][0]).") and (ws<=".intval($filter["ws"][1]).")"; $filter["len"][0]=($_GET["len"][0]); $filter["len"][1]=($_GET["len"][1]); $sql.="and((char_length(Domain)-3)>=".intval($filter["len"][0]).") and ((char_length(Domain)-3)<=".intval($filter["len"][1]).")"; $filter["age"][0]=($_GET["age"][0]); $filter["age"][1]=($_GET["age"][1]); $v=($filter["age"][0]); $t=strtotime("-".$v." years"); $d=date("Y-m-d",$t); $v1=($filter["age"][1]); $t1=strtotime("-".$v1." years"); $d1=date("Y-m-d",$t1); $sql.="and(Registered>='".$d1."') and (Registered<='".$d."')"; } } $fields=[]; } global $usehostname; if ($usehostname==false) {} else {$_GET["q"]=mb_substr($hostname,0,-3);} if(isset($_GET["q"])) { $uw=[]; $words=explode(" ",$_GET["q"]);$q=""; foreach($words as $w) if(mb_strlen(($w))>=3) { $w=mb_strtolower($w); $w=preg_replace("/[^\p{L}0-9,\s]/u","",$w); if(strlen($q)) $q.=" ";$q.=$w; $l=mb_strlen($w); //$w=strtolower($w); if($l-3>3) {$w=mb_substr($w,0,$l-3);} elseif($l>3) {$w=mb_substr($w,0,3);} if(!in_array($w,$uw)) $uw[]=$w; } $filter["q"]=$q;$wsql=""; foreach($uw as $w) if(mb_strlen(trim($w,'-'))>=3) { if(strlen($wsql)) $wsql.="or"; // $wsql.="(Domain like '%".ForSql($w)."%')"; $wsql.="(match(Domain) against('".ForSql($w)."*' in boolean mode))"; $wsql.="or";$wsql.="(match(Synonyms) against('*".ForSql($w)."*' in boolean mode))"; $wsql.="or";$wsql.="(match(Translate) against('*".ForSql($w)."*' in boolean mode))"; $wsql.="or";$wsql.="(match(Translit) against('*".ForSql($w)."*' in boolean mode))"; } if(strlen($wsql)) { if(mb_strlen($sql)) $sql.="and"; $sql.="(".$wsql.")"; } } $zones=["RU"=>"checked","SU"=>"checked","РФ"=>"checked"]; foreach($zones as $zone=>$checked) { // if(isset($_SESSION["zones"])) $zones[$zone]=($_SESSION["zones"][$zone]=="checked")?"checked":""; if(isset($_GET["zones"])) $zones[$zone]=(in_array($zone,$_GET["zones"]))?"checked":""; } $filter["zones"]=$zones; //$_SESSION["zones"]=$zones; $zsql=""; foreach($zones as $zone=>$checked) { if(mb_strlen($checked)) { if(mb_strlen($zsql)) $zsql.="or"; $zsql.="(zone='.".ForSql(($zone))."')"; } } if(mb_strlen($zsql)) { if(mb_strlen($sql)) $sql.="and"; $sql.="(".$zsql.")"; } if(!isset($filter["q"])) { $result["Готовые проекты"]=["domains"=>[]]; if(mb_strlen($sql)) {$query="select * from domain_info where ProjectList='Y' and Active='Y' and".$sql." order by Domain limit ".(($page-1)*$pagesize).",".$pagesize;} else {$query="select * from domain_info where ProjectList='Y' and Active='Y' order by Domain limit 500";} $r=$DB->query($query); // $r->NavStart(500); // if($r->IsNavPrint()) $result["Домен"]["pagination"]=$r->GetPageNavString(""); if (!empty($r)){ while($f=$r->fetch_array()) { $domain=[ "domain"=>strtolower($f["Domain"]), "tic"=>intval($f["TIC"]), "pr"=>intval($f["PR"]), "ws"=>round($f["WS"]/$limits["ws"]["max"]*100), "ws-value"=>$f["WS"], "yakei"=>round($f["YaKEI"]/$limits["yakei"]["max"]*100), "yakei-value"=>$f["YaKEI"], "gkei"=>round($f["GKEI"]/$limits["gkei"]["max"]*100), "gkei-value"=>$f["GKEI"], "rate"=>intval($f["Popularity"]), "locked"=>null, "price"=>floatval($f["Price"]), "arenda"=>floatval($f["Arenda"]), "age"=>$f["Registered"], "owner"=>$f["Owner"] ]; $result["Готовые проекты"]["domains"][]=$domain; } } $result["Домен"]=["domains"=>[]]; if(mb_strlen($sql)) {$query="select * from domain_info where ProjectList='N' and Active='Y' and".$sql." order by Domain limit ".(($page-1)*$pagesize).",".$pagesize;} else {$query="select * from domain_info where ProjectList='N' and Active='Y' order by Domain limit 500";} $r=$DB->query($query); // $r->NavStart(500); // if($r->IsNavPrint()) $result["Домен"]["pagination"]=$r->GetPageNavString(""); if (!empty($r)){ while($f=$r->fetch_array()) { $lockedTo=strtotime($f["LockedTo"]); $lockedTo=(($lockedTostrtolower($f["Domain"]), "tic"=>intval($f["TIC"]), "pr"=>intval($f["PR"]), "ws"=>round($f["WS"]/$limits["ws"]["max"]*100), "ws-value"=>$f["WS"], "yakei"=>round($f["YaKEI"]/$limits["yakei"]["max"]*100), "yakei-value"=>$f["YaKEI"], "gkei"=>round($f["GKEI"]/$limits["gkei"]["max"]*100), "gkei-value"=>$f["GKEI"], "rate"=>intval($f["Popularity"]), "locked"=>$lockedTo, "price"=>floatval($f["Price"]), "arenda"=>floatval($f["Arenda"]), "age"=>$f["Registered"], "owner"=>$f["Owner"] ]; $result["Домен"]["domains"][]=$domain; } } } else { $domains=[]; $unique=[]; $times=["begin"=>microtime(true)]; $r=$DB->query("select * from domain_info where Active='Y' and ".$sql); $times["sql"]=microtime(true); while($f=$r->fetch_array()) { $lockedTo=strtotime($f["LockedTo"]); $lockedTo=(($lockedTostrtolower($f["Domain"]), "tic"=>intval($f["TIC"]), "pr"=>intval($f["PR"]), "ws"=>round($f["WS"]/$limits["ws"]["max"]*100), "ws-value"=>$f["WS"], "yakei"=>round($f["YaKEI"]/$limits["yakei"]["max"]*100), "yakei-value"=>$f["YaKEI"], "gkei"=>round($f["GKEI"]/$limits["gkei"]["max"]*100), "gkei-value"=>$f["GKEI"], "rate"=>intval($f["Popularity"]), "locked"=>$lockedTo, "price"=>floatval($f["Price"]), "arenda"=>floatval($f["Arenda"]), "age"=>$f["Registered"], "synonyms"=>$f["Synonyms"], "translate"=>$f["Translate"], "translit"=>$f["Translit"], "owner"=>$f["Owner"] ]; } $times["while"]=microtime(true); $words=explode(" ",$filter["q"]); foreach($words as $j=>$word) if(mb_strlen($word)<3) {unset($words[$j]);} for($i=0;($i<3)&&(count($words)>0);$i++) { $key=implode(", ",$words); $structure=[]; foreach($domains as $id=>$domain) { $group=false; foreach($words as $word) { if(preg_match('/^'.$word.'\.(ru|su|рф)$/',$domain["domain"])){$group=0;} elseif(preg_match('/^'.$word.'/',$domain["domain"])){$group=1;} elseif(preg_match('/ '.$word.' /'," ".$domain["synonyms"]." ")){$group=2;} elseif(preg_match('/ '.$word.' /'," ".$domain["translate"]." ")){$group=3;} elseif(preg_match('/ '.$word.' /'," ".$domain["translit"]." ")){$group=4;} elseif(preg_match('/'.$word.'/',$domain["domain"])){$group=5;} elseif(preg_match('/'.$word.'/',$domain["synonyms"])){$group=6;} elseif(preg_match('/'.$word.'/',$domain["translate"])){$group=7;} elseif(preg_match('/'.$word.'/',$domain["translit"])){$group=8;} } if($group!==false) { if(!isset($structure[$group])) $structure[$group]=[]; $structure[$group][]=$domain; // $unique[]=($f["Domain"]); unset($domains[$id]); } } ksort($structure); foreach($structure as $id=>$group) { $prefix=""; switch($id) { case 0:$prefix="Домены совпадающие с ".$key;break; case 1:$prefix="Домены начинающиеся с ".$key;break; case 2:$prefix="Домены с синонимами ".$key;break; case 3:$prefix="Домены с переводом ".$key;break; case 4:$prefix="Домены с транслитом ".$key;break; case 5:$prefix="Домены содержащие ".$key;break; case 6:$prefix="Домены с синонимами, содержащими ".$key;break; case 7:$prefix="Домены с переводом, содержащими ".$key;break; case 8:$prefix="Домены с транслитом, содержащими ".$key;break; } $result[$prefix]=["domains"=>[]]; foreach($group as $domain) { $result[$prefix]["domains"][]=$domain; } } foreach($words as $j=>$word) { if(mb_strlen($word)<3) {unset($words[$j]);} else {$words[$j]=mb_substr($word,0,mb_strlen($word)-1);} } } $times["structure"]=microtime(true); /*$old=$times["begin"]; foreach($times as $name=>$time) { echo $name.": ".number_format($time-$old,3)."
"; $old=$time; }*/ } ?> connect_errno) { header($_SERVER["SERVER_PROTOCOL"]." 429 Busy"); http_response_code(429); throw new RuntimeException('mysqli connection error: ' . $DB->connect_error); } mysqli_set_charset($DB,"utf8"); function ForSql($value, $maxLength = 0) { return $value; } ?> <? $hostname=(getenv('HTTP_HOST')); $hostname=(idn_to_utf8($hostname)); echo $hostname; ?> :: <?echo $mytitle;?> -- мговенная аренда и выкуп доменов. ';} else {$mycss2='';} ?>