Пример #1
0
function function_support(&$func_items)
{
    $func_str = "";
    foreach ($func_items as $item) {
        $status = function_exists($item);
        $func_str .= "<tr>\n";
        if ($item == "close_curl") {
            $func_str .= "<td>CURL";
            if ($curl = close_curl()) {
                $status = '';
                $func_str .= $curl;
            }
            $func_str .= "</td>\n";
        } else {
            if ($item == "close_fopen") {
                $func_str .= "<td>fopen";
                if ($fopen = close_fopen()) {
                    $status = '';
                    $func_str .= $fopen;
                }
                $func_str .= "</td>\n";
            } else {
                if ($item == "close_http") {
                    $func_str .= "<td>HTTP";
                    if (close_http()) {
                        $status = '';
                    }
                    $func_str .= " <span style=\"color:green\">上面的 CURL 或者 fopen 必须支持一个!</span>";
                    $func_str .= "</td>\n";
                } else {
                    if (preg_match("/openssl/", $item)) {
                        $func_str .= "<td>{$item}()";
                        if (!$status) {
                            $func_str .= " <span style=\"color:blue\">请在php.ini中打开扩展extension=php_openssl.dll</span>";
                        }
                        $func_str .= "</td>\n";
                    } else {
                        if ($item == "zend_loader_enabled") {
                            $version = function_exists('zend_loader_version') ? zend_loader_version() : '';
                            $func_str .= "<td>Zend Optimizer " . $version;
                            if (!$status) {
                                $func_str .= " <span style=\"color:green\">不支持Zend,意味着不能使用 “捐赠版”。 php5.2.x请安装Zend Optimizer , php5.3.x请安装Zend Guard Loader</span>";
                            } else {
                                $func_str .= version_compare($version, '3.3', '<') ? " <span style=\"color:red\">版本太低,php5.2.x请升级到3.3.0或以上版本,否则不能使用 “捐赠版”</span>" : '';
                            }
                            $func_str .= "</td>\n";
                        } else {
                            if ($item == "gzinflate") {
                                $func_str .= "<td>{$item}()";
                                if (!$status) {
                                    $func_str .= " <span style=\"color:green\">不支持该函数,意味着不能使用 “IM机器人”。</span>";
                                }
                                $func_str .= "</td>\n";
                            } else {
                                $func_str .= "<td>{$item}()</td>\n";
                            }
                        }
                    }
                }
            }
        }
        if ($status) {
            $func_str .= "<td>支持</td>\n";
            $func_str .= "<td><img src=\"images/0.gif\" class=\"yes\"/></td>\n";
        } else {
            $func_str .= "<td>不支持</td>\n";
            $func_str .= "<td><img src=\"images/0.gif\" class=\"no\"/></td>\n";
        }
        $func_str .= "</tr>";
    }
    return $func_str;
}
Пример #2
0
 function get_url_contents($url, $timeout = 30)
 {
     if (!close_curl()) {
         $ch = curl_init();
         curl_setopt($ch, CURLOPT_URL, $url);
         curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
         curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
         curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
         curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
         $content = curl_exec($ch);
         curl_close($ch);
         return $content;
     } else {
         $params = array();
         if (@ini_get('allow_url_fopen')) {
             if (function_exists('file_get_contents')) {
                 return file_get_contents($url);
             }
             if (function_exists('fopen')) {
                 $params['http'] = 'streams';
             }
         } elseif (function_exists('fsockopen')) {
             $params['http'] = 'fsockopen';
         } else {
             return wp_die('没有可以完成请求的 HTTP 传输器,请查看<a href="' . MY_PLUGIN_URL . '/check.php" target="_blank">环境检查</a>');
         }
         $params += array("method" => 'GET', "timeout" => $timeout, "sslverify" => false);
         return class_http($url, $params);
     }
 }
Пример #3
0
function function_support(&$func_items)
{
    $func_str = "";
    foreach ($func_items as $item) {
        $status = function_exists($item);
        $func_str .= "<tr>\n";
        if ($item == "close_curl") {
            $func_str .= "<td>CURL";
            if ($curl = close_curl()) {
                $status = '';
                $func_str .= $curl;
            }
            $func_str .= "</td>\n";
        } else {
            if ($item == "close_fopen") {
                $func_str .= "<td>fopen";
                if ($fopen = close_fopen()) {
                    $status = '';
                    $func_str .= $fopen;
                }
                $func_str .= "</td>\n";
            } else {
                if ($item == "close_http") {
                    $func_str .= "<td>HTTP";
                    if (close_http()) {
                        $status = '';
                    }
                    $func_str .= " <span style=\"color:green\">上面的 CURL 或者 fopen 必须支持一个!</span>";
                    $func_str .= "</td>\n";
                } else {
                    if (preg_match("/openssl/", $item)) {
                        $func_str .= "<td>{$item}()";
                        if (!$status) {
                            $func_str .= " <span style=\"color:blue\">请在php.ini中打开扩展extension=php_openssl.dll</span>";
                        }
                        $func_str .= "</td>\n";
                    } else {
                        if ($item == "zend_loader_enabled") {
                            $version = function_exists('zend_loader_version') ? zend_loader_version() : '';
                            $func_str .= version_compare(PHP_VERSION, '5.3', '<') ? "<td>Zend Optimizer " : "<td>Zend Guard Loader ";
                            $func_str .= $version;
                            if (!$status) {
                                $func_str .= " <span style=\"color:green\">不支持Zend,意味着不能使用付费插件。 php5.2.x请安装Zend Optimizer , php5.3.x及以上版本请安装Zend Guard Loader</span>";
                            } elseif (version_compare(PHP_VERSION, '5.5', '>=')) {
                                $func_str .= '<span style=\\"color:red\\">很遗憾,暂时不能在php5.5.x上使用付费插件。请降到PHP5.4.x或者PHP5.3.x或者PHP5.2.x版本</span>';
                            } else {
                                $func_str .= version_compare($version, '3.3', '<') ? " <span style=\"color:red\">版本太低,php5.2.x请升级到3.3.0或以上版本,否则不能使用 付费插件</span>" : '';
                            }
                            $func_str .= "</td>\n";
                        } else {
                            $func_str .= "<td>{$item}()</td>\n";
                        }
                    }
                }
            }
        }
        if ($status) {
            $func_str .= "<td>支持</td>\n";
            $func_str .= "<td>√</td>\n";
        } else {
            $func_str .= "<td>不支持</td>\n";
            $func_str .= "<td>X</td>\n";
        }
        $func_str .= "</tr>";
    }
    return $func_str;
}
Пример #4
0
function class_http($url, $params = array())
{
    if ($params['http']) {
        $class = 'WP_Http_' . ucfirst($params['http']);
    } else {
        if (!close_curl()) {
            $class = 'WP_Http_Curl';
        } else {
            http_ssl($url);
            if (@ini_get('allow_url_fopen') && function_exists('fopen')) {
                $class = 'WP_Http_Streams';
            } elseif (function_exists('fsockopen')) {
                $class = 'WP_Http_Fsockopen';
            } else {
                return wp_die('没有可以完成请求的 HTTP 传输器,请查看<a href="' . MY_PLUGIN_URL . '/check.php">环境检查</a>');
            }
        }
    }
    $http = new $class();
    $response = $http->request($url, $params);
    if (!is_array($response)) {
        $errors = $response->errors;
        $error = $errors['http_request_failed'][0];
        if (!$error) {
            $error = $errors['http_failure'][0];
        }
        wp_die('出错了: ' . $error . '<br /><br />可能是您的主机不支持,请查看<a href="' . MY_PLUGIN_URL . '/check.php">环境检查</a>');
    }
    return $response['body'];
}