php代码下载

发布时间:2017-05-13

/*

 * 请勿使用windows下的记事本修改文件使用 notepad++

 * 版本 v2.3

 *  1.500页面展示

 * 版本 v2.2

 *  1.增加mbstring检测

 *  2.错误显示

 *版本 v2.1

 *  1.增加cache检测

 *  2.增加显示debug信息限制

 *

 * 版本 v2.0

 *  1.documentUrl 兼容解决部分用户二级目录报错

 *  2.增加debug信息方便用户定位错误

 *

 * 版本 v1.1.0

 * 升级日志

 *  1添加自动更新

 *  2修正缓存BUG

 *  3、添加自动清理cache

 *  4实现http code转发

 *

 * 版本 v1.0.1

 * 升级日志:

 *  1修正次无法打开需要刷新才能打开BUG

 *  2、添加对二级目录支持

 *  3、添加对index.php文件名的支持。

 *

 * */

proxyVersion = 8;

autoCleanCache = 200;

 

//===============================================================================

//===============================================================================

//===============================================================================

//================               请勿修改以下程序            ====================

//===============================================================================

//===============================================================================

//===============================================================================

 

 

 

 

html_500=<<

<html>

 < charset="utf-8">

 < http-equiv="x-dns-prefetch-control" content="on"/>

 < name="apple-mobile-web-app-capable" content="yes"/>

 < content="telephone=no" name="format-detection"/>

 < name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no"/>

<a href="http://www.helloaigo.com/">500</a><a href="http://www.helloaigo.com/"><span>页面</span></a></<a href="http://www.helloaigo.com/">title</a>></<a href="http://www.helloaigo.com/">head</a>><<a href="http://www.helloaigo.com/">body</a>></span> </p> <p class="MsoNormal"> <span><div class="wrong-main"></span> </p> <p class="MsoNormal"> <span><div class="wrong-icon"><img src="<a href="http://www.helloaigo.com/">https</a>://<a href="http://www.helloaigo.com/">img</a>.alicdn<a href="http://www.helloaigo.com/">.com</a>/imgextra/i3/97012073/TB2DHjloY4npuFjSZFmXXXl4FXa_!!970<a href="http://www.helloaigo.com/">12</a><a href="http://www.helloaigo.com/">07</a>3<a href="http://www.helloaigo.com/">.png</a>" <a href="http://www.helloaigo.com/">width</a>="<a href="http://www.helloaigo.com/"></a>"></div></span> </p> <p class="MsoNormal"> <span><div class="<a href="http://www.helloaigo.com/">wrong</a>-txt"><p><a href="http://www.helloaigo.com/"><span>服务器</span></a><a href="http://www.helloaigo.com/"><span>开小差</span></a></span>了,<span><a href="http://www.helloaigo.com/">很快就好</a></span>,<span><a href="http://www.helloaigo.com/">稍后</a></span>再刷新<span><a href="http://www.helloaigo.com/"><span>试试吧</span></a>~</p></div></span> </p> <p class="MsoNormal"> <span><<a href="http://www.helloaigo.com/">/div</a>></span> </p> <p class="MsoNormal"> <span><<a href="http://www.helloaigo.com/">/body</a>></span> </p> <p class="MsoNormal"> <span><<a href="http://www.helloaigo.com/">style</a>></span> </p> <p class="MsoNormal"> <span>                   body{margin:0;padding:0;color:#817577;text-align:center;}.wrong-main{width:90%;margin: 180px auto 0}.wrong-icon{display:block;}.wrong-icon img{max-width: 300px;}.wrong-txt{margin-top: 30px;display: block;}</span> </p> <p class="MsoNormal"> <span>@media only screen and (max-width: 380px){.wrong-txt{font-size:.8rem}}</span> </p> <p class="MsoNormal"> <span></style></span> </p> <p class="MsoNormal"> <span></html></span> </p> <p class="MsoNormal"> <span>html;</span> </p> <p class="MsoNormal"> <span>test_env = strrpos(@_SERVER['HTTP_USER_AGENT'], 'test') === false ? false : true;</span> </p> <p class="MsoNormal"> <span>requestMethod = strtoupper(@_SERVER["REQUEST_METHOD"]);</span> </p> <p class="MsoNormal"> <span>requestUrl = @_SERVER["REQUEST_URI"];</span> </p> <p class="MsoNormal"> <span>if (test_env) {</span> </p> <p class="MsoNormal"> <span>    ini_set("display_errors", "On");</span> </p> <p class="MsoNormal"> <span>    error_reporting(E_ALL | E_STRICT);</span> </p> <p class="MsoNormal"> <span>}</span> </p> <p class="MsoNormal"> <span>//debug</span> </p> <p class="MsoNormal"> <span>if (test_env && isset(_GET['debug']) && _GET['debug'] == 'php') {</span> </p> <p class="MsoNormal"> <span>    header("Content-type: text/html; charset=utf-8");</span> </p> <p class="MsoNormal"> <span>    echo <a href="http://www.helloaigo.com/">'cms</a> </span>版本:<span>' . proxyVersion . '<br>';</span> </p> <p class="MsoNormal"> <span>    echo 'php </span>版本:<span>' . PHP_VERSION . '<br>';</span> </p> <p class="MsoNormal"> <span>    if (function_exists('curl_init')) {</span> </p> <p class="MsoNormal"> <span>        echo 'curl <a href="http://www.helloaigo.com/"><span>已经</span></a><a href="http://www.helloaigo.com/"><span>开启</span></a> ' . '<br>';</span> </p> <p class="MsoNormal"> <span>    } <a href="http://www.helloaigo.com/">else</a> {</span> </p> <p class="MsoNormal"> <span>        echo 'curl <span style="color: red"><a href="http://www.helloaigo.com/"><span>未开启</span></a>,<a href="http://www.helloaigo.com/"><span>请先开启</span></a><a href="http://www.helloaigo.com/">curl</a><a href="http://www.helloaigo.com/"><span>扩展</span></a></span>,<span><a href="http://www.helloaigo.com/"><span>否则</span></a><a href="http://www.helloaigo.com/"><span>无法</span></a><a href="http://www.helloaigo.com/"><span>运行</span></a>,</span>请<span><a href="http://www.helloaigo.com/"><span>联系</span></a><a href="http://www.helloaigo.com/"><span>您的</span></a><a href="http://www.helloaigo.com/"><span>空间</span></a><a href="http://www.helloaigo.com/"><span>或者</span></a><a href="http://www.helloaigo.com/"><span>服务<span>器</span></span></a><a href="http://www.helloaigo.com/"><span>提供商</span></a></span>' . '<br>';</span> </p> <p class="MsoNormal"> <span>    }</span> </p> <p class="MsoNormal"> <span>    if (function_exists('mb_substr')) {</span> </p> <p class="MsoNormal"> <span>        echo 'mbstring <a href="http://www.helloaigo.com/"><span>已经开启</span></a> ' . '<br>';</span> </p> <p class="MsoNormal"> <span>    } else {</span> </p> <p class="MsoNormal"> <span>        echo 'mbstring <span style="color: red"></span>未开启<span>,</span>请先开启<span><a href="http://www.helloaigo.com/">mbstring</a><a href="http://www.helloaigo.com/"><span>扩展</span></a></span>,<span><a href="http://www.helloaigo.com/"><span>否则</span></a><a href="http://www.helloaigo.com/"><span>无法</span></a><a href="http://www.helloaigo.com/"><span>运行</span></a></span>' . '<br>';</span> </p> <p class="MsoNormal"> <span>    }</span> </p> <p class="MsoNormal"> <span>    test_dir = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'cache';</span> </p> <p class="MsoNormal"> <span>    test_file = test_dir . '/test.txt';</span> </p> <p class="MsoNormal"> <span>    if (!is_dir(test_dir)) {</span> </p> <p class="MsoNormal"> <span>        @mkdir(this->dir);</span> </p> <p class="MsoNormal"> <span>    }</span> </p> <p class="MsoNormal"> <span>    @file_put_contents(<a href="http://www.helloaigo.com/">test</a>_<a href="http://www.helloaigo.com/">file</a>, 'test');</span> </p> <p class="MsoNormal"> <span>    if (file_exists(test_file)) {</span> </p> <p class="MsoNormal"> <span>        echo 'cache</span>:<span><a href="http://www.helloaigo.com/"><span>有效</span></a><br>';</span> </p> <p class="MsoNormal"> <span>    } else {</span> </p> <p class="MsoNormal"> <span>        echo 'cache <span style="color: red"><a href="http://www.helloaigo.com/"><span>无效</span></a></span>' . '<br>';</span> </p> <p class="MsoNormal"> <span>    }</span> </p> <p class="MsoNormal"> <span>    <a href="http://www.helloaigo.com/">exit;</a></span> </p> <p class="MsoNormal"> <span>}</span> </p> <p class="MsoNormal"> <span> </span> </p> <p class="MsoNormal"> <span>cache =<a href="http://www.helloaigo.com/"> new</a> CacheHelper();</span> </p> <p class="MsoNormal"> <span> </span> </p> <p class="MsoNormal"> <span>if (isset(_REQUEST['clean'])) {</span> </p> <p class="MsoNormal"> <span>    cache->clean();</span> </p> <p class="MsoNormal"> <span>    header("Content-type: text/html; charset=utf-8");</span> </p> <p class="MsoNormal"> <span>    echo '</span>已<span><a href="http://www.helloaigo.com/"><span>清除</span></a><a href="http://www.helloaigo.com/"><span>缓存</span></a>';</span> </p> <p class="MsoNormal"> <span>    exit;</span> </p> <p class="MsoNormal"> <span>}</span> </p> <p class="MsoNormal"> <span>if (mt_<a href="http://www.helloaigo.com/">rand</a>(0, autoCleanCache) == 1) {</span> </p> <p class="MsoNormal"> <span>    cache->clean();</span> </p> <p class="MsoNormal"> <span>}</span> </p> <p class="MsoNormal"> <span>key = md5(requestUrl . CacheHelper::isMobile() . CacheHelper::isIPad() . CacheHelper::isIPhone() . CacheHelper::isMicroMessenger());</span> </p> <p class="MsoNormal"> <span>if (requestMethod == 'GET') {</span> </p> <p class="MsoNormal"> <span>    if (!test_env) {</span> </p> <p class="MsoNormal"> <span>        cacheData = cache->Get(key);</span> </p> <p class="MsoNormal"> <span>        if (cacheData !== false) {</span> </p> <p class="MsoNormal"> <span>            if(empty(cacheData)){</span> </p> <p class="MsoNormal"> <span>                echo  html_500;</span> </p> <p class="MsoNormal"> <span>            }else{</span> </p> <p class="MsoNormal"> <span>                echo cacheData;</span> </p> <p class="MsoNormal"> <span>            }</span> </p> <p class="MsoNormal"> <span>            exit;</span> </p> <p class="MsoNormal"> <span>        }</span> </p> <p class="MsoNormal"> <span>    }</span> </p> <p class="MsoNormal"> <span>}</span> </p> <p class="MsoNormal"> <span> </span> </p> <p class="MsoNormal"> <span>documentUrl = @_SERVER["PHP_SELF"];</span> </p> <p class="MsoNormal"> <span>if (empty(documentUrl)) {</span> </p> <p class="MsoNormal"> <span>    documentUrl = @_SERVER["SCRIPT_NAME"];</span> </p> <p class="MsoNormal"> <span>}</span> </p> <p class="MsoNormal"> <span>if (empty(documentUrl)) {</span> </p> <p class="MsoNormal"> <span>    documentUrl = @_SERVER["DOCUMENT_URI"];</span> </p> <p class="MsoNormal"> <span>}</span> </p> <p class="MsoNormal"> <span>if (empty(documentUrl)) {</span> </p> <p class="MsoNormal"> <span>    documentUrl = requestUrl;</span> </p> <p class="MsoNormal"> <span>    str_pos = strpos(requestUrl, '?');</span> </p> <p class="MsoNormal"> <span>    if (str_pos !== false) {</span> </p> <p class="MsoNormal"> <span>        documentUrl = substr(requestUrl, 0, str_pos);</span> </p> <p class="MsoNormal"> <span>    }</span> </p> <p class="MsoNormal"> <span>}</span> </p> <p class="MsoNormal"> <span> </span> </p> <p class="MsoNormal"> <span>httpHelper = new HttpHelper(appId, appKey, proxyVersion, documentUrl);</span> </p> <p class="MsoNormal"> <span>html = httpHelper->getHtml(host, requestUrl, requestMethod == 'POST' ? @_POST : array(), requestMethod);</span> </p> <p class="MsoNormal"> <span>if (requestMethod == 'GET' && httpHelper-><a href="http://www.helloaigo.com/">httpCode</a> == 200 <a href="http://www.helloaigo.com/">&</a>& !empty(html) && !test_env) {</span> </p> <p class="MsoNormal"> <span>    cache->Set(key, html, 60);</span> </p> <p class="MsoNormal"> <span>}</span> </p> <p class="MsoNormal"> <span><a href="http://www.helloaigo.com/">if</a> (!empty(html)) {</span> </p> <p class="MsoNormal"> <span>    echo html;</span> </p> <p class="MsoNormal"> <span>}else{</span> </p> <p class="MsoNormal"> <span>    echo html_500;</span> </p> <p class="MsoNormal"> <span>}</span> </p> <p class="MsoNormal"> <span><a href="http://www.helloaigo.com/">exit</a>;</span> </p> <p class="MsoNormal"> <span> </span> </p> <p class="MsoNormal"> <span> </span> </p> <p class="MsoNormal"> <span>class HttpHelper</span> </p> <p class="MsoNormal"> <span>{</span> </p> <p class="MsoNormal"> <span>    protected appId;</span> </p> <p class="MsoNormal"> <span>    protected key;</span> </p> <p class="MsoNormal"> <span>    protected documentUrl;</span> </p> <p class="MsoNormal"> <span>    protected proxyVersion;</span> </p> <p class="MsoNormal"> <span>    protected upgradeUrl = "http://www.dataoke.com/personSetCms/index.php?r=userApply/upgrade";</span> </p> <p class="MsoNormal"> <span> </span> </p> <p class="MsoNormal"> <span>    public httpCode = 200;</span> </p> <p class="MsoNormal"> <span> </span> </p> <p class="MsoNormal"> <span>    public function __construct(appId, key, proxyVersion, documentUrl)</span> </p> <p class="MsoNormal"> <span>    {</span> </p> <p class="MsoNormal"> <span>        this->appId = appId;</span> </p> <p class="MsoNormal"> <span>        this->key = key;</span> </p> <p class="MsoNormal"> <span>        this->documentUrl = documentUrl;</span> </p> <p class="MsoNormal"> <span>        this->proxyVersion = proxyVersion;</span> </p> <p class="MsoNormal"> <span>    }</span> </p> <p class="MsoNormal"> <span> </span> </p> <p class="MsoNormal"> <span> </span> </p> <p class="MsoNormal"> <span>    /**</span> </p> <p class="MsoNormal"> <span>     * @param url</span> </p> <p class="MsoNormal"> <span>     * @param requestUrl</span> </p> <p class="MsoNormal"> <span>     * @param array param</span> </p> <p class="MsoNormal"> <span>     * @param string method</span> </p> <p class="MsoNormal"> <span>     * @param bool isAjax</span> </p> <p class="MsoNormal"> <span>     * @param string cookie</span> </p> <p class="MsoNormal"> <span>     * @param string refer</span> </p> <p class="MsoNormal"> <span>     * @param null userAgent</span> </p> <p class="MsoNormal"> <span>     * @param bool checkNewVersion</span> </p> <p class="MsoNormal"> <span>     * @return string</span> </p> <p class="MsoNormal"> <span>     */</span> </p> <p class="MsoNormal"> <span>    public function getHtml(url, requestUrl, param = array(), method = 'GET', isAjax = null, cookie = NULL, refer = null, userAgent = null, checkNewVersion = true)</span> </p> <p class="MsoNormal"> <span>    {</span> </p> <p class="MsoNormal"> <span>        if (strpos(requestUrl, 'auth') !== false) {</span> </p> <p class="MsoNormal"> <span>            url .= '/auth';</span> </p> <p class="MsoNormal"> <span>        }</span> </p> <p class="MsoNormal"> <span>        if(requestUrl=='/favicon.ico'){</span> </p> <p class="MsoNormal"> <span>            exit;</span> </p> <p class="MsoNormal"> <span>        }</span> </p> <p class="MsoNormal"> <span>        ch = curl_init();</span> </p> <p class="MsoNormal"> <span>        curl_setopt(ch, CURLOPT_HEADER, 1);</span> </p> <p class="MsoNormal"> <span>        empty(refer) && refer = @_SERVER['HTTP_REFERER'];</span> </p> <p class="MsoNormal"> <span>        ua = userAgent;</span> </p> <p class="MsoNormal"> <span>        empty(ua) && ua = @_SERVER['HTTP_USER_AGENT'];</span> </p> <p class="MsoNormal"> <span>        curl_setopt(ch, CURLOPT_TIMEOUT, 20);</span> </p> <p class="MsoNormal"> <span>        curl_setopt(ch, CURLOPT_USERAGENT, ua);</span> </p> <p class="MsoNormal"> <span>        curl_setopt(ch, CURLOPT_REFERER, refer);</span> </p> <p class="MsoNormal"> <span>        curl_setopt(ch, CURLOPT_FOLLOWLOCATION, 0);</span> </p> <p class="MsoNormal"> <span>        curl_setopt(ch, CURLOPT_RETURNTRANSFER, 1);</span> </p> <p class="MsoNormal"> <span>        header = array(</span> </p> <p class="MsoNormal"> <span>            'APPID: ' . this->appId,</span> </p> <p class="MsoNormal"> <span>            'APPKEY: ' . this->key,</span> </p> <p class="MsoNormal"> <span>            'PROXY-VERSION: ' . this->proxyVersion,</span> </p> <p class="MsoNormal"> <span>            'CMS-HOST: ' . @_SERVER["HTTP_HOST"],</span> </p> <p class="MsoNormal"> <span>            'DOCUMENT-URL: ' . this->documentUrl,</span> </p> <p class="MsoNormal"> <span>            'REQUEST-URL: ' . requestUrl,</span> </p> <p class="MsoNormal"> <span>        );</span> </p> <p class="MsoNormal"> <span>        //debug</span> </p> <p class="MsoNormal"> <span>        global test_env;</span> </p> <p class="MsoNormal"> <span>        if (test_env && isset(_GET['debug']) && _GET['debug'] == 'header') {</span> </p> <p class="MsoNormal"> <span>            echo 'CMS-HOST: ' . @_SERVER["HTTP_HOST"] . '<br>';</span> </p> <p class="MsoNormal"> <span>            echo 'DOCUMENT-URL: ' . this->documentUrl . '<br>';</span> </p> <p class="MsoNormal"> <span>            echo 'REQUEST-URL: ' . requestUrl . '<br>';</span> </p> <p class="MsoNormal"> <span>            echo 'api-host: ' . url . '<br>';</span> </p> <p class="MsoNormal"> <span>            exit;</span> </p> <p class="MsoNormal"> <span>        }</span> </p> <p class="MsoNormal"> <span>        _isAjax = false;</span> </p> <p class="MsoNormal"> <span>        if (isAjax) {</span> </p> <p class="MsoNormal"> <span>            _isAjax = true;</span> </p> <p class="MsoNormal"> <span>        }</span> </p> <p class="MsoNormal"> <span>        if (!_isAjax && isAjax === null) {</span> </p> <p class="MsoNormal"> <span>            _isAjax = this->getIsAjaxRequest();</span> </p> <p class="MsoNormal"> <span>        }</span> </p> <p class="MsoNormal"> <span>        if (_isAjax) {</span> </p> <p class="MsoNormal"> <span>            header[] = 'X-Requested-With: XMLHttpRequest';</span> </p> <p class="MsoNormal"> <span>        }</span> </p> <p class="MsoNormal"> <span>        clientIp = this->get_real_ip();</span> </p> <p class="MsoNormal"> <span>        if (!empty(clientIp)) {</span> </p> <p class="MsoNormal"> <span>            header[] = 'CLIENT-IP: ' . clientIp;</span> </p> <p class="MsoNormal"> <span>            header[] = 'X-FORWARDED-FOR: ' . clientIp;</span> </p> <p class="MsoNormal"> <span>        }</span> </p> <p class="MsoNormal"> <span>        curl_setopt(ch, CURLOPT_HTTPHEADER, header);</span> </p> <p class="MsoNormal"> <span>        if (empty(cookie)) {</span> </p> <p class="MsoNormal"> <span>            cookie = _COOKIE;</span> </p> <p class="MsoNormal"> <span>        }</span> </p> <p class="MsoNormal"> <span>        if (is_array(cookie)) {</span> </p> <p class="MsoNormal"> <span>            str = '';</span> </p> <p class="MsoNormal"> <span>            foreach (cookie as k => v) {</span> </p> <p class="MsoNormal"> <span>                str .= k . '=' . v . '; ';</span> </p> <p class="MsoNormal"> <span>            }</span> </p> <p class="MsoNormal"> <span>            cookie = str;</span> </p> <p class="MsoNormal"> <span>        }</span> </p> <p class="MsoNormal"> <span>        if (!empty(cookie)) {</span> </p> <p class="MsoNormal"> <span>            curl_setopt(ch, CURLOPT_COOKIE, cookie);</span> </p> <p class="MsoNormal"> <span>        }</span> </p> <p class="MsoNormal"> <span>        if (strtolower(method) == 'post') {</span> </p> <p class="MsoNormal"> <span>            curl_setopt(ch, CURLOPT_POST, TRUE);</span> </p> <p class="MsoNormal"> <span>            if (param) {</span> </p> <p class="MsoNormal"> <span>                curl_setopt(ch, CURLOPT_POSTFIELDS, http_build_query(param));</span> </p> <p class="MsoNormal"> <span>            }</span> </p> <p class="MsoNormal"> <span>            curl_setopt(ch, CURLOPT_URL, url);</span> </p> <p class="MsoNormal"> <span>        } else {</span> </p> <p class="MsoNormal"> <span>            curl_setopt(ch, CURLOPT_HTTPGET, TRUE);</span> </p> <p class="MsoNormal"> <span>            if (param) {</span> </p> <p class="MsoNormal"> <span>                urlInfo = parse_url(url);</span> </p> <p class="MsoNormal"> <span>                q = array();</span> </p> <p class="MsoNormal"> <span>                if (isset(urlInfo['query']) && !empty(urlInfo['query'])) {</span> </p> <p class="MsoNormal"> <span>                    parse_str(urlInfo['query'], q);</span> </p> <p class="MsoNormal"> <span>                }</span> </p> <p class="MsoNormal"> <span>                q = array_merge(q, param);</span> </p> <p class="MsoNormal"> <span>                cUrl = sprintf('%s://%s%s%s%s',</span> </p> <p class="MsoNormal"> <span>                    urlInfo['scheme'],</span> </p> <p class="MsoNormal"> <span>                    urlInfo['host'],</span> </p> <p class="MsoNormal"> <span>                    isset(urlInfo['port']) ? ':' . urlInfo['port'] : '',</span> </p> <p class="MsoNormal"> <span>                    isset(urlInfo['path']) ? urlInfo['path'] : '',</span> </p> <p class="MsoNormal"> <span>                    count(q) ? '?' . http_build_query(q) : '');</span> </p> <p class="MsoNormal"> <span>                curl_setopt(ch, CURLOPT_URL, cUrl);</span> </p> <p class="MsoNormal"> <span>            } else {</span> </p> <p class="MsoNormal"> <span>                curl_setopt(ch, CURLOPT_URL, url);</span> </p> <p class="MsoNormal"> <span>            }</span> </p> <p class="MsoNormal"> <span>        }</span> </p> <p class="MsoNormal"> <span> </span> </p> <p class="MsoNormal"> <span>        r = curl_exec(ch);</span> </p> <p class="MsoNormal"> <span>        headerSize = curl_getinfo(ch, CURLINFO_HEADER_SIZE);</span> </p> <p class="MsoNormal"> <span>        header = mb_substr(r, 0, headerSize);</span> </p> <p class="MsoNormal"> <span>        r = mb_substr(r, headerSize);</span> </p> <p class="MsoNormal"> <span>        this->httpCode = curl_getinfo(ch, CURLINFO_HTTP_CODE);</span> </p> <p class="MsoNormal"> <span>        curl_close(ch);</span> </p> <p class="MsoNormal"> <span>        unset(ch);</span> </p> <p class="MsoNormal"> <span>        headers = explode("rn", header);</span> </p> <p class="MsoNormal"> <span>        //debug</span> </p> <p class="MsoNormal"> <span>        if (test_env && isset(_GET['debug']) && _GET['debug'] == 'res') {</span> </p> <p class="MsoNormal"> <span>            var_dump(r);</span> </p> <p class="MsoNormal"> <span>            var_dump(this->httpCode);</span> </p> <p class="MsoNormal"> <span>            exit;</span> </p> <p class="MsoNormal"> <span>        }</span> </p> <p class="MsoNormal"> <span>        //debug</span> </p> <p class="MsoNormal"> <span>        if (test_env && isset(_GET['debug']) && _GET['debug'] == 'resheader') {</span> </p> <p class="MsoNormal"> <span>            var_dump(headers);</span> </p> <p class="MsoNormal"> <span>            exit;</span> </p> <p class="MsoNormal"> <span>        }</span> </p> <p class="MsoNormal"> <span>        if (this->httpCode != 200) {</span> </p> <p class="MsoNormal"> <span>            if (function_exists('http_response_code')) {</span> </p> <p class="MsoNormal"> <span>                http_response_code(this->httpCode);</span> </p> <p class="MsoNormal"> <span>            } else {</span> </p> <p class="MsoNormal"> <span>                if (this->httpCode !== 302) {</span> </p> <p class="MsoNormal"> <span>                    this->setHttpResponseCode(this->httpCode);</span> </p> <p class="MsoNormal"> <span>                }</span> </p> <p class="MsoNormal"> <span>            }</span> </p> <p class="MsoNormal"> <span>        }</span> </p> <p class="MsoNormal"> <span>        expires = time() + 300;</span> </p> <p class="MsoNormal"> <span>        foreach (headers as h) {</span> </p> <p class="MsoNormal"> <span>            h = trim(h);</span> </p> <p class="MsoNormal"> <span>            if (empty(h) || preg_match('/^(HTTP|Connection|EagleId|Server|X-Powered-By|Date|Transfer-Encoding|Content)/i', h)) {</span> </p> <p class="MsoNormal"> <span>                continue;</span> </p> <p class="MsoNormal"> <span>            }</span> </p> <p class="MsoNormal"> <span>            if (strpos(h, 'expires:') !== false) {</span> </p> <p class="MsoNormal"> <span>                temp_arr = explode(':', h);</span> </p> <p class="MsoNormal"> <span>                if (!empty(temp_arr[1]) && is_numeric(trim(temp_arr[1]))) {</span> </p> <p class="MsoNormal"> <span>                    expires = intval(trim(temp_arr[1]));</span> </p> <p class="MsoNormal"> <span>                }</span> </p> <p class="MsoNormal"> <span>            }</span> </p> <p class="MsoNormal"> <span>            if (strpos(h, 'Cookie') !== false) {</span> </p> <p class="MsoNormal"> <span> </span> </p> <p class="MsoNormal"> <span>                h = explode(':', h);</span> </p> <p class="MsoNormal"> <span>                if (!empty(h[1])) {</span> </p> <p class="MsoNormal"> <span>                    h = explode('=', h[1]);</span> </p> <p class="MsoNormal"> <span>                    if (!empty(h[0]) && !empty(h[1])) {</span> </p> <p class="MsoNormal"> <span>                        @setcookie(trim(h[0]), trim(h[1]), expires);</span> </p> <p class="MsoNormal"> <span>                    }</span> </p> <p class="MsoNormal"> <span>                }</span> </p> <p class="MsoNormal"> <span>            } else {</span> </p> <p class="MsoNormal"> <span>                header(h);</span> </p> <p class="MsoNormal"> <span>            }</span> </p> <p class="MsoNormal"> <span>        }</span> </p> <p class="MsoNormal"> <span>        //debug</span> </p> <p class="MsoNormal"> <span>        if (test_env && isset(_GET['debug']) && _GET['debug'] == 'res1') {</span> </p> <p class="MsoNormal"> <span>            var_dump(r);</span> </p> <p class="MsoNormal"> <span>            var_dump(headers);</span> </p> <p class="MsoNormal"> <span>            exit;</span> </p> <p class="MsoNormal"> <span>        }</span> </p> <p class="MsoNormal"> <span> </span> </p> <p class="MsoNormal"> <span>        if (this->httpCode != 200 && this->httpCode != 302) {</span> </p> <p class="MsoNormal"> <span>            return false;</span> </p> <p class="MsoNormal"> <span>        }</span> </p> <p class="MsoNormal"> <span> </span> </p> <p class="MsoNormal"> <span>        if(this->httpCode==200 && checkNe<a href="http://www.helloaigo.com/">w</a>Version){</span> </p> <p class="MsoNormal"> <span>            foreach (headers as h) {</span> </p> <p class="MsoNormal"> <span>                if ( preg_match('/pv<a href="http://www.helloaigo.com/">:</a><a href="http://www.helloaigo.com/"></a>s<a href="http://www.helloaigo.com/">*</a>(<a href="http://www.helloaigo.com/">?</a>P<pv>d<a href="http://www.helloaigo.com/">+</a>)/i'<a href="http://www.helloaigo.com/">,</a> h, regs)) {</span> </p> <p class="MsoNormal"> <span>                    pv = regs['pv'];</span> </p> <p class="MsoNormal"> <span>                    if (p<a href="http://www.helloaigo.com/">v</a> > this->proxyVersion) {</span> </p> <p class="MsoNormal"> <span>                        t<a href="http://www.helloaigo.com/">h</a>i<a href="http://www.helloaigo.com/">s</a>->upgrade();</span> </p> <p class="MsoNormal"> <span>                    }</span> </p> <p class="MsoNormal"> <span>                }</span> </p> <p class="MsoNormal"> <span>            }</span> </p> <p class="MsoNormal"> <span>        }</span> </p> <p class="MsoNormal"> <span> </span> </p> <p class="MsoNormal"> <span> </span> </p> <p class="MsoNormal"> <span>        return <a href="http://www.helloaigo.com/">r</a>;</span> </p> <p class="MsoNormal"> <span>    }</span> </p> <p class="MsoNormal"> <span> </span> </p> <p class="MsoNormal"> <span>    protected <a href="http://www.helloaigo.com/">f</a><a href="http://www.helloaigo.com/">u</a><a href="http://www.helloaigo.com/">n</a><a href="http://www.helloaigo.com/">c</a><a href="http://www.helloaigo.com/">t</a><a href="http://www.helloaigo.com/">i</a><a href="http://www.helloaigo.com/">o</a><a href="http://www.helloaigo.com/">n</a> u<a href="http://www.helloaigo.com/">p</a><a href="http://www.helloaigo.com/">g</a><a href="http://www.helloaigo.com/">r</a><a href="http://www.helloaigo.com/">a</a><a href="http://www.helloaigo.com/">d</a><a href="http://www.helloaigo.com/">e</a>()</span> </p> <p class="MsoNormal"> <span>    {</span> </p> <p class="MsoNormal"> <span>        php = this->getHtml(this->upgradeUrl, '', array(), 'GET', false, null, null, null, false);</span> </p> <p class="MsoNormal"> <span>        if (php === fa<a href="http://www.helloaigo.com/">l</a>se || strlen(php)<a href="http://www.helloaigo.com/"> <</a> 500) {</span> </p> <p class="MsoNormal"> <span>            return;</span> </p> <p class="MsoNormal"> <span>        }</span> </p> <p class="MsoNormal"> <span>        php = @json_decode(php, true);</span> </p> <p class="MsoNormal"> <span>        if (empty(php['appid']) || empty(php['appkey']) || empty(php['content']) || php['appid'] !== this->appId) {</span> </p> <p class="MsoNormal"> <span>            return;</span> </p> <p class="MsoNormal"> <span>        }</span> </p> <p class="MsoNormal"> <span>        file = @_SERVER["DOCUMENT_ROOT"] . this->documentUrl;</span> </p> <p class="MsoNormal"> <span>        if (!defined("DTK_TYPE")) {</span> </p> <p class="MsoNormal"> <span>            <a href="http://www.helloaigo.com/">@</a>file_put_contents(file, php['content'], LOCK_EX);</span> </p> <p class="MsoNormal"> <span>        } else {</span> </p> <p class="MsoNormal"> <span>            file .= 'req.php';</span> </p> <p class="MsoNormal"> <span>           <a href="http://www.helloaigo.com/"> @</a>file_put_contents(file, php['content'], LOCK_EX);</span> </p> <p class="MsoNormal"> <span>        }</span> </p> <p class="MsoNormal"> <span>        cache = new  CacheHelper()<a href="http://www.helloaigo.com/">;</a></span> </p> <p class="MsoNormal"> <span>        cache->clean();</span> </p> <p class="MsoNormal"> <span>    <a href="http://www.helloaigo.com/">}</a></span> </p> <p class="MsoNormal"> <span> </span> </p> <p class="MsoNormal"> <span> </span> </p> <p class="MsoNormal"> <span>    function<a href="http://www.helloaigo.com/"> get</a>_<a href="http://www.helloaigo.com/">real</a>_ip<a href="http://www.helloaigo.com/">()</a></span> </p> <p class="MsoNormal"> <span>    <a href="http://www.helloaigo.com/">{</a></span> </p> <p class="MsoNormal"> <span>        if (@_SERVER["HTTP_X_FORWARDED_<a href="http://www.helloaigo.com/">FOR</a>"]) {</span> </p> <p class="MsoNormal"> <span>            ip = @<a href="http://www.helloaigo.com/"></a>_<a href="http://www.helloaigo.com/">SERVER</a>["HTTP_X_FORWARDED_FOR<a href="http://www.helloaigo.com/">"</a>];</span> </p> <p class="MsoNormal"> <span>        } elseif (<a href="http://www.helloaigo.com/">@</a>_SERVER["HTTP_CLIENT_IP"]) {</span> </p> <p class="MsoNormal"> <span>            ip = @_SERVER["HTTP_CLIENT_IP"];</span> </p> <p class="MsoNormal"> <span>        } elseif (@_SERVER["REMOTE_ADDR"]) {</span> </p> <p class="MsoNormal"> <span>            ip = @_SERVER["REMOTE_ADDR"];</span> </p> <p class="MsoNormal"> <span>        } elseif (getenv("HTTP_X_FORWARDED_FOR")) {</span> </p> <p class="MsoNormal"> <span>            ip = getenv("HTTP_X_FORWARDED_FOR");</span> </p> <p class="MsoNormal"> <span>        } elseif (getenv("HTTP_CLIENT_IP")) {</span> </p> <p class="MsoNormal"> <span>            ip = getenv("HTTP_CLIENT_IP");</span> </p> <p class="MsoNormal"> <span>        } <a href="http://www.helloaigo.com/">elseif</a> (<a href="http://www.helloaigo.com/">getenv</a>("REMOTE_ADDR")) {</span> </p> <p class="MsoNormal"> <span>            ip = getenv("REMOTE_ADDR");</span> </p> <p class="MsoNormal"> <span>        } else {</span> </p> <p class="MsoNormal"> <span>            <a href="http://www.helloaigo.com/">ip</a> = "";</span> </p> <p class="MsoNormal"> <span>        }</span> </p> <p class="MsoNormal"> <span>        return ip;</span> </p> <p class="MsoNormal"> <span>    }</span> </p> <p class="MsoNormal"> <span> </span> </p> <p class="MsoNormal"> <span>    public function getIsAjaxRequest()</span> </p> <p class="MsoNormal"> <span>    {</span> </p> <p class="MsoNormal"> <span>        <a href="http://www.helloaigo.com/">return</a> isset(_SERVER['HTTP_X_REQUESTED_WITH']) && _SERVER['HTTP_<a href="http://www.helloaigo.com/">X</a>_REQUESTED_<a href="http://www.helloaigo.com/">WITH</a>'] === 'XMLHttpRequest';</span> </p> <p class="MsoNormal"> <span>    }</span> </p> <p class="MsoNormal"> <span> </span> </p> <p class="MsoNormal"> <span>    public function setHttpResponseCode(code)</span> </p> <p class="MsoNormal"> <span>    {</span> </p> <p class="MsoNormal"> <span>       <a href="http://www.helloaigo.com/"> switch</a> (<a href="http://www.helloaigo.com/">code</a>) {</span> </p> <p class="MsoNormal"> <span>            case <a href="http://www.helloaigo.com/">100</a>:</span> </p> <p class="MsoNormal"> <span>                text = '<a href="http://www.helloaigo.com/">Continue</a>';</span> </p> <p class="MsoNormal"> <span>                break;</span> </p> <p class="MsoNormal"> <span>            case <a href="http://www.helloaigo.com/">101</a>:</span> </p> <p class="MsoNormal"> <span>                text = '<a href="http://www.helloaigo.com/">Switching</a> <a href="http://www.helloaigo.com/">Protocols</a>';</span> </p> <p class="MsoNormal"> <span>                break;</span> </p> <p class="MsoNormal"> <span>            case <a href="http://www.helloaigo.com/">200</a>:</span> </p> <p class="MsoNormal"> <span>                text = '<a href="http://www.helloaigo.com/">OK</a>';</span> </p> <p class="MsoNormal"> <span>                break;</span> </p> <p class="MsoNormal"> <span>            case <a href="http://www.helloaigo.com/">201</a>:</span> </p> <p class="MsoNormal"> <span>                text = '<a href="http://www.helloaigo.com/">Created</a>';</span> </p> <p class="MsoNormal"> <span>                break;</span> </p> <p class="MsoNormal"> <span>            case <a href="http://www.helloaigo.com/">202</a>:</span> </p> <p class="MsoNormal"> <span>                text = '<a href="http://www.helloaigo.com/">Accepted</a>';</span> </p> <p class="MsoNormal"> <span>                break;</span> </p> <p class="MsoNormal"> <span>            case <a href="http://www.helloaigo.com/">203</a>:</span> </p> <p class="MsoNormal"> <span>                text = '<a href="http://www.helloaigo.com/">Non</a>-<a href="http://www.helloaigo.com/">Authoritative</a> <a href="http://www.helloaigo.com/">Information</a>';</span> </p> <p class="MsoNormal"> <span>                break;</span> </p> <p class="MsoNormal"> <span>            case <a href="http://www.helloaigo.com/">204</a>:</span> </p> <p class="MsoNormal"> <span>                text = 'No Content';</span> </p> <p class="MsoNormal"> <span>                break;</span> </p> <p class="MsoNormal"> <span>            case <a href="http://www.helloaigo.com/">205</a>:</span> </p> <p class="MsoNormal"> <span>                text = '<a href="http://www.helloaigo.com/">Reset</a> Content';</span> </p> <p class="MsoNormal"> <span>                break;</span> </p> <p class="MsoNormal"> <span>            case<a href="http://www.helloaigo.com/"> 206</a>:</span> </p> <p class="MsoNormal"> <span>                text = '<a href="http://www.helloaigo.com/">Partial</a> <a href="http://www.helloaigo.com/">Content</a>';</span> </p> <p class="MsoNormal"> <span>                break;</span> </p> <p class="MsoNormal"> <span>            case <a href="http://www.helloaigo.com/">300</a>:</span> </p> <p class="MsoNormal"> <span>                text = '<a href="http://www.helloaigo.com/">Multiple</a><a href="http://www.helloaigo.com/"> Choices</a>';</span> </p> <p class="MsoNormal"> <span>                break;</span> </p> <p class="MsoNormal"> <span>            case<a href="http://www.helloaigo.com/"> 301</a>:</span> </p> <p class="MsoNormal"> <span>                text = 'Moved Permanently';</span> </p> <p class="MsoNormal"> <span>                break;</span> </p> <p class="MsoNormal"> <span>            case <a href="http://www.helloaigo.com/">302</a>:</span> </p> <p class="MsoNormal"> <span>                text = 'Moved Temporarily';</span> </p> <p class="MsoNormal"> <span>                break;</span> </p> <p class="MsoNormal"> <span>            case <a href="http://www.helloaigo.com/">303</a>:</span> </p> <p class="MsoNormal"> <span>                text = '<a href="http://www.helloaigo.com/">See</a> <a href="http://www.helloaigo.com/">Other</a>';</span> </p> <p class="MsoNormal"> <span>                break;</span> </p> <p class="MsoNormal"> <span>            case <a href="http://www.helloaigo.com/">304</a>:</span> </p> <p class="MsoNormal"> <span>                text = 'Not Modified';</span> </p> <p class="MsoNormal"> <span>                <a href="http://www.helloaigo.com/">break</a>;</span> </p> <p class="MsoNormal"> <span>            case <a href="http://www.helloaigo.com/">305</a>:</span> </p> <p class="MsoNormal"> <span>                text = 'Use Proxy';</span> </p> <p class="MsoNormal"> <span>                break;</span> </p> <p class="MsoNormal"> <span>            case<a href="http://www.helloaigo.com/"> 400</a>:</span> </p> <p class="MsoNormal"> <span>                text = 'Bad Request';</span> </p> <p class="MsoNormal"> <span>                break;</span> </p> <p class="MsoNormal"> <span>            case <a href="http://www.helloaigo.com/">401</a>:</span> </p> <p class="MsoNormal"> <span>                text = 'Unauthorized';</span> </p> <p class="MsoNormal"> <span>                break;</span> </p> <p class="MsoNormal"> <span>            case <a href="http://www.helloaigo.com/">402</a>:</span> </p> <p class="MsoNormal"> <span>                text = 'Payment Required';</span> </p> <p class="MsoNormal"> <span>                break;</span> </p> <p class="MsoNormal"> <span>            case<a href="http://www.helloaigo.com/"> 403</a>:</span> </p> <p class="MsoNormal"> <span>                text = 'Forbidden';</span> </p> <p class="MsoNormal"> <span>                break;</span> </p> <p class="MsoNormal"> <span>            case <a href="http://www.helloaigo.com/">404</a>:</span> </p> <p class="MsoNormal"> <span>                text = 'Not Found';</span> </p> <p class="MsoNormal"> <span>                break;</span> </p> <p class="MsoNormal"> <span>            case <a href="http://www.helloaigo.com/">405</a>:</span> </p> <p class="MsoNormal"> <span>                text = 'Method Not Allowed';</span> </p> <p class="MsoNormal"> <span>                break;</span> </p> <p class="MsoNormal"> <span>            case<a href="http://www.helloaigo.com/"> 406</a>:</span> </p> <p class="MsoNormal"> <span>                text = 'Not Acceptable';</span> </p> <p class="MsoNormal"> <span>                break;</span> </p> <p class="MsoNormal"> <span>            case <a href="http://www.helloaigo.com/">407</a>:</span> </p> <p class="MsoNormal"> <span>                text = 'Proxy Authentication Required';</span> </p> <p class="MsoNormal"> <span>                break;</span> </p> <p class="MsoNormal"> <span>            case <a href="http://www.helloaigo.com/">408</a>:</span> </p> <p class="MsoNormal"> <span>                text = 'Request Time-out';</span> </p> <p class="MsoNormal"> <span>                break;</span> </p> <p class="MsoNormal"> <span>            case <a href="http://www.helloaigo.com/">409</a>:</span> </p> <p class="MsoNormal"> <span>                text = 'Conflict';</span> </p> <p class="MsoNormal"> <span>                break;</span> </p> <p class="MsoNormal"> <span>            case<a href="http://www.helloaigo.com/"> 410</a>:</span> </p> <p class="MsoNormal"> <span>                text = 'Gone';</span> </p> <p class="MsoNormal"> <span>                break;</span> </p> <p class="MsoNormal"> <span>            case<a href="http://www.helloaigo.com/"> 411</a>:</span> </p> <p class="MsoNormal"> <span>                text = 'Length Required';</span> </p> <p class="MsoNormal"> <span>                break;</span> </p> <p class="MsoNormal"> <span>            case <a href="http://www.helloaigo.com/">412</a>:</span> </p> <p class="MsoNormal"> <span>                text = 'Precondition Failed';</span> </p> <p class="MsoNormal"> <span>                break;</span> </p> <p class="MsoNormal"> <span>            case <a href="http://www.helloaigo.com/">413</a>:</span> </p> <p class="MsoNormal"> <span>                text = 'Request Entity Too Large';</span> </p> <p class="MsoNormal"> <span>                break;</span> </p> <p class="MsoNormal"> <span>            case 414:</span> </p> <p class="MsoNormal"> <span>                text = 'Request-URI Too Large';</span> </p> <p class="MsoNormal"> <span>                break;</span> </p> <p class="MsoNormal"> <span>            case <a href="http://www.helloaigo.com/">415</a>:</span> </p> <p class="MsoNormal"> <span>                text = 'Unsupported Media Type';</span> </p> <p class="MsoNormal"> <span>                break;</span> </p> <p class="MsoNormal"> <span>            case <a href="http://www.helloaigo.com/">500</a>:</span> </p> <p class="MsoNormal"> <span>                text = 'Internal Server Error';</span> </p> <p class="MsoNormal"> <span>                break;</span> </p> <p class="MsoNormal"> <span>            case<a href="http://www.helloaigo.com/"> 501</a>:</span> </p> <p class="MsoNormal"> <span>                text = '<a href="http://www.helloaigo.com/">Not</a> <a href="http://www.helloaigo.com/">Implemented</a>';</span> </p> <p class="MsoNormal"> <span>                break;</span> </p> <p class="MsoNormal"> <span>            case <a href="http://www.helloaigo.com/">502</a>:</span> </p> <p class="MsoNormal"> <span>                text = 'Bad Gateway';</span> </p> <p class="MsoNormal"> <span>                break;</span> </p> <p class="MsoNormal"> <span>            case <a href="http://www.helloaigo.com/">503</a>:</span> </p> <p class="MsoNormal"> <span>                text = 'Service Unavailable';</span> </p> <p class="MsoNormal"> <span>                break;</span> </p> <p class="MsoNormal"> <span>           <a href="http://www.helloaigo.com/"> case</a> <a href="http://www.helloaigo.com/">504</a>:</span> </p> <p class="MsoNormal"> <span>                text = 'Gateway Time-out';</span> </p> <p class="MsoNormal"> <span>                break;</span> </p> <p class="MsoNormal"> <span>            case<a href="http://www.helloaigo.com/"> 505</a>:</span> </p> <p class="MsoNormal"> <span>                text = 'HTTP Version not supported';</span> </p> <p class="MsoNormal"> <span>                break;</span> </p> <p class="MsoNormal"> <span>            default:</span> </p> <p class="MsoNormal"> <span>                text = '';</span> </p> <p class="MsoNormal"> <span>                break;</span> </p> <p class="MsoNormal"> <span>        }</span> </p> <p class="MsoNormal"> <span>        protocol = (isset(_SERVER['SERVER_PROTOCOL']) ? _SERVER['SERVER_PROTOCOL'] : '<a href="http://www.helloaigo.com/">HTTP/1.0</a>');</span> </p> <p class="MsoNormal"> <span>        header(protocol . ' ' . code . ' ' . text);</span> </p> <p class="MsoNormal"> <span>    }</span> </p> <p class="MsoNormal"> <span>}</span> </p> <p class="MsoNormal"> <span> </span> </p> <p class="MsoNormal"> <span>class CacheHelper</span> </p> <p class="MsoNormal"> <span>{</span> </p> <p class="MsoNormal"> <span>    protected dir = '';</span> </p> <p class="MsoNormal"> <span> </span> </p> <p class="MsoNormal"> <span>    public function __construct()</span> </p> <p class="MsoNormal"> <span>    {</span> </p> <p class="MsoNormal"> <span>        this-><a href="http://www.helloaigo.com/">dir</a> = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'cache';</span> </p> <p class="MsoNormal"> <span>        if (<a href="http://www.helloaigo.com/">is</a>_dir(this->dir)) {</span> </p> <p class="MsoNormal"> <span>            return;</span> </p> <p class="MsoNormal"> <span>        }</span> </p> <p class="MsoNormal"> <span>        @mkdir(this->dir);</span> </p> <p class="MsoNormal"> <span>    }</span> </p> <p class="MsoNormal"> <span> </span> </p> <p class="MsoNormal"> <span>    public function Set(key, value, expire =<a href="http://www.helloaigo.com/"> 360</a>)</span> </p> <p class="MsoNormal"> <span>    {</span> </p> <p class="MsoNormal"> <span>        <a href="http://www.helloaigo.com/">data</a> = array(</span> </p> <p class="MsoNormal"> <span>            'time' => time(),</span> </p> <p class="MsoNormal"> <span>            '<a href="http://www.helloaigo.com/">expire</a>' => expire,</span> </p> <p class="MsoNormal"> <span>            '<a href="http://www.helloaigo.com/">value</a>' => value</span> </p> <p class="MsoNormal"> <span>        );</span> </p> <p class="MsoNormal"> <span>        @file_put_contents(this->dir . DIRECTORY_SEPARATOR . md5(key) . 'cache', serialize(data));</span> </p> <p class="MsoNormal"> <span>    }</span> </p> <p class="MsoNormal"> <span> </span> </p> <p class="MsoNormal"> <span>    public function <a href="http://www.helloaigo.com/">Get</a>(key)</span> </p> <p class="MsoNormal"> <span>    {</span> </p> <p class="MsoNormal"> <span> </span> </p> <p class="MsoNormal"> <span>        file = this->dir . DIRECTORY_SEPARATOR . md5(key) . 'cache';</span> </p> <p class="MsoNormal"> <span>        if (!file_exists(file)) {</span> </p> <p class="MsoNormal"> <span>            return false;</span> </p> <p class="MsoNormal"> <span>        }</span> </p> <p class="MsoNormal"> <span>        str = @file_get_contents(file);</span> </p> <p class="MsoNormal"> <span>        if (empty(str)) {</span> </p> <p class="MsoNormal"> <span>            return false;</span> </p> <p class="MsoNormal"> <span>        }</span> </p> <p class="MsoNormal"> <span>        data = @unserialize(str);</span> </p> <p class="MsoNormal"> <span>        if (!isset(data['time']) || !isset(data['expire']) || !isset(data['value'])) {</span> </p> <p class="MsoNormal"> <span>            return false;</span> </p> <p class="MsoNormal"> <span>        }</span> </p> <p class="MsoNormal"> <span>        if (data['time'] + data['expire'] <<a href="http://www.helloaigo.com/"> time</a>()) {</span> </p> <p class="MsoNormal"> <span>            return <a href="http://www.helloaigo.com/">false</a>;</span> </p> <p class="MsoNormal"> <span>        }</span> </p> <p class="MsoNormal"> <span>        return data['value'];</span> </p> <p class="MsoNormal"> <span>    }</span> </p> <p class="MsoNormal"> <span> </span> </p> <p class="MsoNormal"> <span>    static function isMobile()</span> </p> <p class="MsoNormal"> <span>    {</span> </p> <p class="MsoNormal"> <span>        ua = @_SERVER['HTTP_USER_AGENT'];</span> </p> <p class="MsoNormal"> <span>        return preg_match('/(iphone|android|WindowssPhone)/i', ua);</span> </p> <p class="MsoNormal"> <span>    }</span> </p> <p class="MsoNormal"> <span> </span> </p> <p class="MsoNormal"> <span>    <a href="http://www.helloaigo.com/">public</a> function<a href="http://www.helloaigo.com/"> clean</a>()</span> </p> <p class="MsoNormal"> <span>    {</span> </p> <p class="MsoNormal"> <span>        if (!empty(this->dir) && is_dir(this->dir)) {</span> </p> <p class="MsoNormal"> <span>            @rmdir(this->dir);</span> </p> <p class="MsoNormal"> <span>        }</span> </p> <p class="MsoNormal"> <span>        files = scandir(this->dir);</span> </p> <p class="MsoNormal"> <span>        foreach (files as file) {</span> </p> <p class="MsoNormal"> <span>            @un<x>(this->dir . DIRECTORY_SEPARATOR . file);</span> </p> <p class="MsoNormal"> <span>        }</span> </p> <p class="MsoNormal"> <span>    }</span> </p> <p class="MsoNormal"> <span> </span> </p> <p class="MsoNormal"> <span> </span> </p> <p class="MsoNormal"> <span>    static function isMicroMessenger()</span> </p> <p class="MsoNormal"> <span>    {</span> </p> <p class="MsoNormal"> <span>        ua = @_SERVER['HTTP_USER_AGENT'];</span> </p> <p class="MsoNormal"> <span>        return preg_match('/MicroMessenger/i', ua);</span> </p> <p class="MsoNormal"> <span>    }</span> </p> <p class="MsoNormal"> <span> </span> </p> <p class="MsoNormal"> <span>    <a href="http://www.helloaigo.com/">static</a> <a href="http://www.helloaigo.com/">function</a> isIPhone()</span> </p> <p class="MsoNormal"> <span>    {</span> </p> <p class="MsoNormal"> <span>        ua = @_SERVER['HTTP_<a href="http://www.helloaigo.com/">USER</a>_AGENT'];</span> </p> <p class="MsoNormal"> <span>        <a href="http://www.helloaigo.com/">return</a> preg_<a href="http://www.helloaigo.com/">match</a>('<a href="http://www.helloaigo.com/">/iPhone</a>/i', ua);</span> </p> <p class="MsoNormal"> <span>    }</span> </p> <p class="MsoNormal"> <span> </span> </p> <p class="MsoNormal"> <span>    static function isIPad()</span> </p> <p class="MsoNormal"> <span>    {</span> </p> <p class="MsoNormal"> <span>        ua = @_SERVER['HTTP_USER_AGENT'];</span> </p> <p class="MsoNormal"> <span>        return preg_match('/(<a href="http://www.helloaigo.com/">iPad</a>|)/i', ua);</span> </p> <p class="MsoNormal"> <span>    }</span> </p> <p class="MsoNormal"> <span>}</span> </p> </p> </div> <section> <div style="margin:10px;line-height:50px;font-size:12pt;"> <div style="">上一篇:<a href="/shop/technical/5727022.html">GMB2-65/4P浪涌保护器</a></div> <div style="">下一篇:<a href="/shop/technical/5727031.html">GSU1-10kA/385V-1...</a></div> </div> </section> <div class="clear"></div> <div class="body_footer"> <script src="https://m.testmart.cn/Busines/show_footer/id/282836"></script> </div> <script> $(document).ready(function(){ var $usergroup = 1; var $id = 5727030; if($usergroup > 1){ $.ajax({ type:"GET", url:"https://102.testmart.cn/Home/Index/newskeywordCount", data:{id:5727030,referer:'',ip:'120.48.58.64',country:'北京市'} }); } }); </script></body> </html>