不得了啊。这个代码处理URL

浏览:836 发布日期:2013/07/10 分类:技术分享 关键字: 不得了啊。这个代码处理URL
<?php
class joeUrl{

static $url_info; //存储URL信息

public static function getUrlInfo(){

if (empty(self::$url_info)){
$script_name = $_SERVER["script_NAME"]; //获取当前文件的路径
$url = $_SERVER["REQUEST_URI"]; //获取完整的路径

$url_search = array($script_name,'?','&','=',JoeApp::$config['URL_HTML_SUFFIX']); //搜索默认的URL模式的符号,伪静态后缀名等
$url_replace = array('','/','/','/',''); //替换默认的URL模式的符号
$url = str_replace($url_search,$url_replace,$url); //执行替换符号
$url = explode('/',$url); //用/号将URL分隔开

unset ($url[0]); //把第一个/号在数组中注销掉
//如果第2个数组则index.php为空则为控制器和动作方法 加入默认名称
if (empty($url[1])){
joeApp::$controller_name = null;
joeApp::$action_name = null;
return;
}
//检测设置了哪一种URL访问模式
//1为PATH模式 不能自动识别控制器名称和动作名称
//2为伪静态模式 能自动识别控制器名称和动作名称
if (joeApp::$config['URL_ROUTER_MODE'] == '2'){
joeApp::$controller_name = $url[1];
joeApp::$action_name = empty($url[2])?null:$url[2];
}else{
joeApp::$controller_name = $url[2];
joeApp::$action_name = $url[4];
}
unset ($url[1],$url[2]); //注销掉controll和action的URL信息

$return_url = array();
//模拟GET请求
foreach ($url as $key => $val){
if ($key %2 == 1){
$return_url[$url[$key]] = $url[$key+1];
}
}
unset ($url); //注销掉url数组
self::$url_info = $return_url; //赋值给静态变量
}

}

//获取URL信息的方法
public static function getUrlInfoParameter($name){
return self::$url_info[$name];
}

//获取当前网址的方法
public static function getSiteUrl(){
return 'http://'.$_SERVER['HTTP_HOST'] ;
}

}
?>
最佳答案
评论() 相关
后面还有条评论,点击查看>>