/** * 将url转换为标准的pathinfo类型的url * @param $url * @return string */ function url($url) { $_url = \herosphp\http\HttpRequest::url2Target($url); if ($_url != $url) { return $_url; } $webApp = \herosphp\core\WebApplication::getInstance(); $sysConfig = $webApp->getConfigs(); $defaultUrl = $sysConfig['default_url']; $actionMap = array(); $args = ''; $urlInfo = parse_url($url); if ($urlInfo['path']) { $filename = str_replace(EXT_URI, '', $urlInfo['path']); $pathInfo = explode('/', $filename); if (isset($pathInfo[1])) { $actionMap = explode('_', $pathInfo[1]); } //提取参数 if (isset($pathInfo[2])) { $args .= $pathInfo[2]; } if ($urlInfo['query']) { $query = preg_replace('/[&|=]/', '-', $urlInfo['query']); if ($query) { $args .= $args == '' ? $query : '-' . $query; } } } //如果没有任何参数,则访问默认页面。如http://www.herosphp.my这种格式 if (!$actionMap[0]) { $actionMap[0] = $defaultUrl['module']; } if (!$actionMap[1]) { $actionMap[1] = $defaultUrl['action']; } if (!$actionMap[2]) { $actionMap[2] = $defaultUrl['method']; } $newUrl = '/' . implode('_', $actionMap); if (trim($args) != '') { $newUrl .= '/' . $args; } $newUrl .= EXT_URI; return $newUrl; }
/** * 将url转换为标准的pathinfo类型的url * @param $url * @return string */ function url($url) { $_url = \herosphp\http\HttpRequest::url2Target($url); if ($_url != $url) { $_url = rtrim($_url, '/'); return $_url; } $webApp = \herosphp\core\WebApplication::getInstance(); $sysConfig = $webApp->getConfigs(); $defaultUrl = $sysConfig['default_url']; $actionMap = array(); $args = ''; $urlInfo = parse_url($url); if ($urlInfo['path'] && $urlInfo['path'] != '/') { $filename = str_replace(EXT_URI, '', $urlInfo['path']); $filename = rtrim($filename, "/"); $pathInfo = explode('/', $filename); array_shift($pathInfo); //提取pathinfo参数 $paramArr = array(); if (count($pathInfo) > 3) { if (isset($pathInfo[3])) { $params = explode('-', $pathInfo[3]); for ($i = 0; $i < count($params); $i++) { if ($i % 2 == 0) { if (trim($params[$i]) == '' || trim($params[$i + 1]) == '' || strpos($params[$i], '=') != false) { continue; } $paramArr[] = $params[$i]; $paramArr[] = $params[$i + 1]; } } } } if ($urlInfo['query']) { $query = preg_replace('/[&|=]/', '-', $urlInfo['query']); if ($query) { $args .= $args == '' ? $query : '-' . $query; } } } //如果没有任何参数,则访问默认页面。如http://www.herosphp.my这种格式 if (!$actionMap[0]) { $actionMap[0] = $defaultUrl['module']; } if (!$actionMap[1]) { $actionMap[1] = $defaultUrl['action']; } if (!$actionMap[2]) { $actionMap[2] = $defaultUrl['method']; } $newUrl = '/' . implode('/', $actionMap); if (!empty($paramArr)) { $newUrl .= '/' . implode('-', $paramArr); } if (trim($args) != '') { $newUrl .= '/' . $args; } $newUrl .= EXT_URI; $newUrl = rtrim($newUrl, '/'); return $newUrl; }