`
melec
  • 浏览: 28529 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

tp,U函数改造

阅读更多
// URL组装 支持不同模式和路由 2010-2-5 更新
function U($url,$params=false,$redirect=false,$suffix=true) {
	

	//普通模式
	if(false==strpos($url,'/')){
		$url	.='//';
	}
	
	//填充默认参数
	$urls	=	explode('/',$url);
	$app	=	($urls[0]) ? $urls[0] : APP_NAME;
	$mod	=	($urls[1]) ? $urls[1] : 'Index';
	$act	=	($urls[2]) ? $urls[2] : 'index';
	
	//组合默认路径
	$site_url	=	SITE_URL.'/index.php?'.C('VAR_APP').'='.$app.'&'.C('VAR_MODULE').'='.$mod.'&'.C('VAR_ACTION').'='.$act;

	//填充附加参数
	if($params){
		if(is_array($params)){
			$params	=	http_build_query($params);
		}
		$site_url	.=	'&'.$params;
	}

	//开启路由和Rewrite
	if(C('URL_ROUTER_ON')){

		//载入路由
		$router_ruler	=	C('router');
		$router_key		=	$app.'/'.ucfirst($mod).'/'.$act;

		//路由命中
		if(isset($router_ruler[$router_key])){
			
			//填充路由参数
			$site_url	=	SITE_URL.'/'.$router_ruler[$router_key];

			//填充附加参数
			if($params){

				//解析替换URL中的参数
				parse_str($params,$r);
				foreach($r as $k=>$v){
					if(strpos($site_url,'['.$k.']')){
						$site_url	=	str_replace('['.$k.']',$v,$site_url);
					}else{
						$lr[$k]	=	$v;
					}
				}
				
				//填充剩余参数
				if(is_array($lr) && count($lr)>0){
					$site_url	.=	'?'.http_build_query($lr);
				}
				
			}
		}
	}
	
	//输出地址或跳转
	if($redirect){
		redirect($site_url);
	}else{
		return $site_url;
	}
}
分享到:
评论

相关推荐

    tp函数大全(部分)

    这是我个人整理的Thinkphp函数大全,

    phpmysql处理函数,仿tp3.2的。

    在TP3.2中,M函数是一个非常常用的数据操作助手函数,它可以方便地创建模型实例,进而执行数据库查询。例如,`M('User')`会创建一个名为User的模型实例,这个实例可以用来执行CRUD(创建、读取、更新、删除)操作。...

    振中TP1100M开发函数

    ### 振中TP1100M开发函数库详解 #### 0. 说明 在振中掌机TP1100M的C语言开发函数库中,库函数被分为两大类:**系统函数**与**标准函数**。为了确保代码的一致性和兼容性,所有系统函数均以下划线作为第一个字符,...

    tplink archer t4u win驱动 rtl8812au kali

    【标题】"tplink archer t4u win驱动 rtl8812au kali"涉及到的主要知识点是关于TP-Link Archer T4U无线网卡在Kali Linux系统中的驱动安装,特别是针对rtl8812au芯片组的兼容性问题。 在计算机硬件中,TP-Link ...

    西门子TP1200触摸屏U盘导出的数据在EXCEL中无法分列显示的解决办法.docx

    西门子TP1200触摸屏是一款广泛应用于工业自动化领域的设备,它允许用户通过U盘导出数据以便于进一步的分析和处理。然而,在实际操作中,有时会遇到一个常见问题,即从TP1200导出的数据在Excel中无法正确地分列显示,...

    振中TP1100N开发函数

    ### 振中TP1100N开发函数知识点 #### 一、概述 振中TP1100N是一款专业级别的掌上电脑设备,它配备了丰富的硬件接口和功能,适用于多种工业应用场合。为了更好地支持软件开发人员利用该设备进行高效编程,振中提供了...

    TP900S通讯工具(兼容TP900)_TP900S_TP900_

    【标题】"TP900S通讯工具(兼容TP900)"指的是一个专为TP900S和TP900系列设备设计的通信软件或应用,它允许这两款设备之间进行有效的数据交互和信息传递。在工业自动化、物联网(IoT)或者嵌入式系统中,这样的通讯...

    改造TP-link WR703N为Arduino WIFI通信和实时视频传输模块

    标题 "改造TP-link WR703N为Arduino WIFI通信和实时视频传输模块" 提供了我们探讨的主题,即如何将常见的TP-link WR703N无线路由器转变为一个集成WIFI通信和实时视频传输功能的模块,以配合Arduino进行项目开发。...

    tp28xx_kdrv_tp9930.tar.gz

    3. `tp28xx.c`:驱动程序的主要实现代码,实现了与 TP28 系列芯片通信的函数。 4. `tp9930.c/h`:针对 TP9930 的驱动代码,处理与触摸屏控制器交互的具体逻辑。 5. `*.mod.c`:内核模块的编译输出文件。 6. `*.ko`:...

    贝塞尔函数一阶图像_1阶贝塞尔函数_贝塞尔函数_matlab_

    贝塞尔函数是数学和计算机图形学中的一个重要概念,特别是在曲线和曲面的构造中起着核心作用。在MATLAB环境中,我们可以轻松地实现贝塞尔函数的可视化,这正是标题和描述所提及的内容。 贝塞尔函数,由法国工程师...

    tp6806_refer_osg_tp6806_

    4. **Headers**:头文件,定义了TP6806的API函数和数据结构。 5. **Libraries**:编译好的库文件,供开发者链接到他们的应用程序。 6. **Sources**:源代码,可能包括示例代码的源文件,供学习参考。 7. **Build ...

    TP900通讯工具_TP900驱动_tp通讯工具_TP900_

    【TP900通讯工具】是一款专为TP900设备设计的专业驱动程序和集成界面软件,旨在提供高效、便捷的通信解决方案。该工具能够帮助用户实现与TP900设备之间的稳定数据交换,适用于各种应用场景,如工业自动化、物联网...

    过tp驱动.zip_TP_TP保护_tp驱动_过TP保护_过tp

    过TP驱动,全称为TouchPad (TP) 驱动,是计算机中专门管理触摸板设备的软件组件。在Windows操作系统中,TP驱动扮演着关键角色,它允许用户通过触摸板进行精确的鼠标操作,包括点击、滚动、双击、拖拽等。过TP保护则...

    tp-link741n_v1解锁U-boot的OpenWRT固件、不死U-boot及刷入工具

    包括: 1、解锁U-boot的固件openwr-ar71xx-generic-tl-wr741nd-v1-squashfs-factory.bin,功能简单,只为方便刷入不死U-boot 2、适用wr741nd-v1的不死U-boot及其升级版breed 3、刷入工具

    AUTOSAR J1939Tp 传输方式详解

    在J1939Tp_Init()函数执行前,如果启用了Development Error Detection (DET),则调用除J1939Tp_GetVersionInfo之外的任何函数都将导致错误(J1939TP_E_UNINIT)。 3. **传输序列** - **直接传输模式(Direct PG)...

    TP900S TPCOM函数手册.pdf

    动态库函数说明手册 ...1、SendFileToHc 格式:INT WINAPI SendFileToHc(CHAR PORT, const CHAR *Baudrate, const CHAR *DataFile, const CHAR *AppFile, CHAR Prompt) ...同名的 mif 文件,如果传输失败,函数返回错误 4

    tp6使用rabbitmq

    【标题】:“TP6使用RabbitMQ” 在PHP框架ThinkPHP6(简称TP6)中集成RabbitMQ是一项常见的任务,用于实现异步处理、消息队列和分布式系统的通信。RabbitMQ是一个开源的消息代理和队列服务器,它遵循AMQP(Advanced...

    Autosar J1939Tp模块总结.docx

    在工作过程中,上层模块调用异步函数 J1939Tp_Transmit 请求使用传输,如果信道己被占有,J1939Tp_Transmit() 将拒绝传输并返回 ENOT_OK。 J1939TP 模块还提供了给下层的服务,包括: * 传输确认函数 J1939Tp_...

    TP-LINK+TL-WDR6500+v2+替换+U-Boot+专用固件

    【TP-LINK TL-WDR6500 v2 U-Boot 替换详解】 TP-LINK TL-WDR6500 v2 是一款常见的无线路由器,适用于家庭和小型办公室网络环境。这款路由器采用Linux内核为基础的操作系统,而U-Boot则是一个广泛使用的嵌入式设备...

    TP5开发手册

    - **助手函数**:列举了一系列常用的助手函数。 - **升级指导**:给出了从旧版本升级到5.0版本的指导步骤。 - **更新日志**:记录了版本更新的历史记录。 综上所述,TP5开发手册涵盖了从入门到精通的所有关键知识点...

Global site tag (gtag.js) - Google Analytics