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; }
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); } }
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; }
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']; }