在使用PATH_INFO的情况下,对路由进行预处理

#1 redguan

// 在使用PATH_INFO的情况下,对路由进行预处理
if(TRUE == $GLOBALS['G_SP']['url']["url_path_info"] && !empty($_SERVER['PATH_INFO'])){
$url_args = explode("/", $_SERVER['PATH_INFO']);$url_sort = array();
for($u = 1; $u < count($url_args); $u++){
  if($u == 1)$url_sort[$GLOBALS['G_SP']["url_controller"]] = $url_args[$u];
  elseif($u == 2)$url_sort[$GLOBALS['G_SP']["url_action"]] = $url_args[$u];
  else {$url_sort[$url_args[$u]] = isset($url_args[$u+1]) ? $url_args[$u+1] : "";$u+=1;>
if("POST" == strtoupper($_SERVER['REQUEST_METHOD'])){$_REQUEST = $_POST =  $_POST + $url_sort;
}else{$_REQUEST = $_GET = $_GET + $url_sort;}
}
如果同时存在POST和GET数据,那么??

2010-10-22 10:52:32

#2 jake

if("POST" == strtoupper($_SERVER['REQUEST_METHOD']))判断请求类型:
如果是POST请求,那么在PATH_INFO的情况下,$url_sort就是GET的数据,所以它们可以相加。
如果是GET请求,那么根本不存在POST数据。

另外,即使不是PATH_INFO模式,也是正如上面说的,POST的时候会有POST和GET的数据(当然,同名是不建议的),GET的时候POST是没有数据的。

2010-10-22 11:34:58