getHost() : $host; $port = ($scheme == 'https') ? $_SERVER['SERVER_PORT'] : 80; $port = in_array($port, [80, 443]) ? '' : (':' . $port); $route = trim($route, '/'); if (preg_match('/v2\./i', $host) && $host != Zc::C('jflow.host')) { $scriptName = substr($_SERVER['SCRIPT_NAME'], 0, strpos($_SERVER['SCRIPT_NAME'], 'index.php')); $scriptName = (($route == '') && ($scriptName == '/api/')) ? '/' : $scriptName; } else { $scriptName = '/'; } if (is_array($params) && $params['__NOAPI__']) { $scriptName = '/'; } $url = "{$scheme}://{$host}{$port}{$scriptName}{$route}"; if (is_array($params)) { unset($params['__NOAPI__']); $params = http_build_query($params, '', '&'); } if ($params) { $url .= '?' . ltrim($params, '&'); } return $url; } private function getHost() { return $_SERVER['HTTP_HOST']; } private function getCurProtocol() { return 'http'; } public function parseBack() { $_GET['_route_'] = $_GET['_route_'] ? : Zc::C(ZcConfigConst::DefaultRoute); if (isset($_GET['_route_'])) { $_GET['route'] = $this->rewriteRoute($_GET['_route_']); unset($_GET['_route_']); } } private function rewriteRoute($route) { $route = trim($route, '/'); if (AppConst::isUseAppModuleApp() && (stripos($route, 'control/decrypt/') === 0)) { return 'pdd/' . $route; } if ((AppConst::isPddRubyApp() || AppConst::isPddTaoBaiKeApp()) && $this->isUseRealRoute($route)) { return $route; } if (AppConst::isRubyWeb()) { if (stripos($route, 'ruby/') === 0) { return $route; } else { return 'ruby/' . $route; } } else if (AppConst::isRubyDesktop()) { if (stripos($route, 'ruby_dt/') === 0) { return $route; } else { return 'ruby_dt/' . $route; } } else if (AppConst::isPddTaoBaiKeApp()) { if (stripos($route, 'taobaike/') === 0) { return $route; } else { return 'taobaike/' . $route; } } return $route; } private function isUseRealRoute($route){ if (preg_match('#(filter|timer|open|common|admin)\/.*#i', $route)) { return true; } $realRouteList = array( ); return in_array($route, $realRouteList); } }