當前位置: 首頁>>代碼示例>>PHP>>正文


PHP WindUrlHelper::urlToArgs方法代碼示例

本文整理匯總了PHP中WindUrlHelper::urlToArgs方法的典型用法代碼示例。如果您正苦於以下問題:PHP WindUrlHelper::urlToArgs方法的具體用法?PHP WindUrlHelper::urlToArgs怎麽用?PHP WindUrlHelper::urlToArgs使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在WindUrlHelper的用法示例。


在下文中一共展示了WindUrlHelper::urlToArgs方法的6個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。

示例1: match

 /**
  * 路由解析
  *
  * 匹配這個patten時,將試圖去解析module、controller和action值,並解析二級域名。
  * @see AbstractWindRoute::match()
  */
 public function match($request)
 {
     $fullUrl = $request->getHostInfo() . $request->getRequestUri();
     $_pathInfo = trim(str_replace($request->getBaseUrl(), '', $fullUrl), '/');
     if (!$_pathInfo || !preg_match_all('/' . $this->pattern . '/i', trim($_pathInfo, '/'), $matches) || strpos($_pathInfo, '.php') !== false) {
         return null;
     }
     list(, $_args) = explode('?', $_pathInfo . '?', 2);
     $_args = trim($_args, '?');
     $_args = WindUrlHelper::urlToArgs($_args, true, $this->separator);
     foreach ($this->params as $_n => $_p) {
         if (isset($_p['map']) && isset($matches[$_p['map']][0])) {
             $_value = $matches[$_p['map']][0];
         } else {
             $_value = isset($_p['default']) ? $_p['default'] : '';
         }
         $this->params[$_n]['value'] = $params[$_n] = trim($_value, '-/');
         unset($_args[$_n]);
         //去掉參數中的m,c,a
     }
     $host = $request->getHostInfo();
     if ($host != '' && ($pos1 = strpos($host, '://')) !== false && ($pos2 = strpos($host, '.')) !== false) {
         $host = substr($host, $pos1 + 3, $pos2 - $pos1 - 3);
     } else {
         return null;
     }
     $params['p'] = $host == 'www' ? '' : $host;
     unset($_args['p']);
     //去掉參數中的p
     $_args && ($params = array_merge($params, $_args));
     return $params;
 }
開發者ID:jellycheng,項目名稱:windframework,代碼行數:38,代碼來源:WindRewriteRoute.php

示例2: _resolveMca

 /**
  * 分析參數
  *
  * @param AbstractWindRouter $router
  * @param string $action
  * @param array $args
  * @return array
  */
 private function _resolveMca($router, $action, $args)
 {
     list($action, $_args) = explode('?', $action . '?');
     $args = array_merge($args, $_args ? WindUrlHelper::urlToArgs($_args, false) : array());
     $action = trim($action, '/');
     $tmp = explode('/', $action . '/');
     end($tmp);
     if (5 === count($tmp) && !strncasecmp('app/', $action, 4)) {
         list($_a, $_c, $_app_name, $_m) = array(prev($tmp), prev($tmp), prev($tmp), prev($tmp));
         $args['app'] = $_app_name;
     } else {
         list($_a, $_c, $_m) = array(prev($tmp), prev($tmp), prev($tmp));
     }
     return array($_a, $_c, $_m, $args);
 }
開發者ID:ccq18,項目名稱:EduSoho,代碼行數:23,代碼來源:PwAdminRoute.php

示例3: match

 /**
  * 路由解析
  *
  * 匹配這個patten時,將試圖去解析module、controller和action值,並解析二級域名。
  *
  * @see AbstractWindRoute::match()
  */
 public function match($request)
 {
     $_pathInfo = trim($request->getPathInfo(), '/');
     if (!$_pathInfo || !preg_match($this->pattern, $_pathInfo, $matches) || strpos($_pathInfo, '.php') !== false) {
         return null;
     }
     $params = array();
     $_args = WindUrlHelper::urlToArgs($matches[4], true, $this->separator);
     // 解析m,c,a
     foreach ($this->params as $k => $v) {
         if (isset($matches[$v])) {
             $params[$k] = trim($matches[$v], '-/');
         }
         unset($_args[$k]);
         // 去掉參數中的m,c,a
     }
     return $_args + $params;
 }
開發者ID:ccq18,項目名稱:EduSoho,代碼行數:25,代碼來源:WindRewriteRoute.php

示例4: _resolveMca

 /**
  * 分析參數
  *
  * @param AbstractWindRouter $router
  * @param string $action
  * @param array $args
  * @return array 
  */
 private function _resolveMca($router, $action, $args)
 {
     list($action, $_args) = explode('?', $action . '?');
     $args = array_merge($args, $_args ? WindUrlHelper::urlToArgs($_args, false) : array());
     $action = trim($action, '/');
     $tmp = explode('/', $action . '/');
     end($tmp);
     if (5 === count($tmp) && !strncasecmp('app/', $action, 4)) {
         list($_a, $_c, $_app_name, $_m) = array(prev($tmp), prev($tmp), prev($tmp), prev($tmp));
         $args['app'] = $_app_name;
     } else {
         list($_a, $_c, $_m) = array(prev($tmp), prev($tmp), prev($tmp));
     }
     $_m = $_m ? $_m : $router->getDefaultModule();
     $_c = $_c ? $_c : $router->getDefaultController();
     $_a = $_a ? $_a : $router->getDefaultAction();
     return array($_m, $_c, $_a, $args);
 }
開發者ID:ccq18,項目名稱:EduSoho,代碼行數:26,代碼來源:PwRoute.php

示例5: _filterUrl

 /**
  * 過濾來源URL
  *
  * TODO
  * 
  * @return string
  */
 private function _filterUrl($returnDefault = true)
 {
     $url = $this->getInput('backurl');
     if (!$url) {
         $url = $this->getRequest()->getServer('HTTP_REFERER');
     }
     if ($url) {
         // 排除來自注冊頁麵/自身welcome/show的跳轉
         $args = WindUrlHelper::urlToArgs($url);
         if ($args['m'] == 'u' && in_array($args['c'], array('register', 'login'))) {
             $url = '';
         }
     }
     if (!$url && $returnDefault) {
         $url = Wekit::url()->base;
     }
     return $url;
 }
開發者ID:chendong0444,項目名稱:phpwind,代碼行數:25,代碼來源:LoginController.php

示例6: match

 public function match($request)
 {
     $path = $request->getPathInfo();
     return WindUrlHelper::urlToArgs($path);
 }
開發者ID:BTSnowball,項目名稱:BTSnowball_Users_Hand,代碼行數:5,代碼來源:PwCommonRoute.php


注:本文中的WindUrlHelper::urlToArgs方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。