// 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;
}
}
分享到:
相关推荐
这是我个人整理的Thinkphp函数大全,
在TP3.2中,M函数是一个非常常用的数据操作助手函数,它可以方便地创建模型实例,进而执行数据库查询。例如,`M('User')`会创建一个名为User的模型实例,这个实例可以用来执行CRUD(创建、读取、更新、删除)操作。...
### 振中TP1100M开发函数库详解 #### 0. 说明 在振中掌机TP1100M的C语言开发函数库中,库函数被分为两大类:**系统函数**与**标准函数**。为了确保代码的一致性和兼容性,所有系统函数均以下划线作为第一个字符,...
【标题】"tplink archer t4u win驱动 rtl8812au kali"涉及到的主要知识点是关于TP-Link Archer T4U无线网卡在Kali Linux系统中的驱动安装,特别是针对rtl8812au芯片组的兼容性问题。 在计算机硬件中,TP-Link ...
西门子TP1200触摸屏是一款广泛应用于工业自动化领域的设备,它允许用户通过U盘导出数据以便于进一步的分析和处理。然而,在实际操作中,有时会遇到一个常见问题,即从TP1200导出的数据在Excel中无法正确地分列显示,...
### 振中TP1100N开发函数知识点 #### 一、概述 振中TP1100N是一款专业级别的掌上电脑设备,它配备了丰富的硬件接口和功能,适用于多种工业应用场合。为了更好地支持软件开发人员利用该设备进行高效编程,振中提供了...
【标题】"TP900S通讯工具(兼容TP900)"指的是一个专为TP900S和TP900系列设备设计的通信软件或应用,它允许这两款设备之间进行有效的数据交互和信息传递。在工业自动化、物联网(IoT)或者嵌入式系统中,这样的通讯...
标题 "改造TP-link WR703N为Arduino WIFI通信和实时视频传输模块" 提供了我们探讨的主题,即如何将常见的TP-link WR703N无线路由器转变为一个集成WIFI通信和实时视频传输功能的模块,以配合Arduino进行项目开发。...
3. `tp28xx.c`:驱动程序的主要实现代码,实现了与 TP28 系列芯片通信的函数。 4. `tp9930.c/h`:针对 TP9930 的驱动代码,处理与触摸屏控制器交互的具体逻辑。 5. `*.mod.c`:内核模块的编译输出文件。 6. `*.ko`:...
贝塞尔函数是数学和计算机图形学中的一个重要概念,特别是在曲线和曲面的构造中起着核心作用。在MATLAB环境中,我们可以轻松地实现贝塞尔函数的可视化,这正是标题和描述所提及的内容。 贝塞尔函数,由法国工程师...
4. **Headers**:头文件,定义了TP6806的API函数和数据结构。 5. **Libraries**:编译好的库文件,供开发者链接到他们的应用程序。 6. **Sources**:源代码,可能包括示例代码的源文件,供学习参考。 7. **Build ...
【TP900通讯工具】是一款专为TP900设备设计的专业驱动程序和集成界面软件,旨在提供高效、便捷的通信解决方案。该工具能够帮助用户实现与TP900设备之间的稳定数据交换,适用于各种应用场景,如工业自动化、物联网...
过TP驱动,全称为TouchPad (TP) 驱动,是计算机中专门管理触摸板设备的软件组件。在Windows操作系统中,TP驱动扮演着关键角色,它允许用户通过触摸板进行精确的鼠标操作,包括点击、滚动、双击、拖拽等。过TP保护则...
包括: 1、解锁U-boot的固件openwr-ar71xx-generic-tl-wr741nd-v1-squashfs-factory.bin,功能简单,只为方便刷入不死U-boot 2、适用wr741nd-v1的不死U-boot及其升级版breed 3、刷入工具
在J1939Tp_Init()函数执行前,如果启用了Development Error Detection (DET),则调用除J1939Tp_GetVersionInfo之外的任何函数都将导致错误(J1939TP_E_UNINIT)。 3. **传输序列** - **直接传输模式(Direct PG)...
动态库函数说明手册 ...1、SendFileToHc 格式:INT WINAPI SendFileToHc(CHAR PORT, const CHAR *Baudrate, const CHAR *DataFile, const CHAR *AppFile, CHAR Prompt) ...同名的 mif 文件,如果传输失败,函数返回错误 4
【标题】:“TP6使用RabbitMQ” 在PHP框架ThinkPHP6(简称TP6)中集成RabbitMQ是一项常见的任务,用于实现异步处理、消息队列和分布式系统的通信。RabbitMQ是一个开源的消息代理和队列服务器,它遵循AMQP(Advanced...
在工作过程中,上层模块调用异步函数 J1939Tp_Transmit 请求使用传输,如果信道己被占有,J1939Tp_Transmit() 将拒绝传输并返回 ENOT_OK。 J1939TP 模块还提供了给下层的服务,包括: * 传输确认函数 J1939Tp_...
【TP-LINK TL-WDR6500 v2 U-Boot 替换详解】 TP-LINK TL-WDR6500 v2 是一款常见的无线路由器,适用于家庭和小型办公室网络环境。这款路由器采用Linux内核为基础的操作系统,而U-Boot则是一个广泛使用的嵌入式设备...
- **助手函数**:列举了一系列常用的助手函数。 - **升级指导**:给出了从旧版本升级到5.0版本的指导步骤。 - **更新日志**:记录了版本更新的历史记录。 综上所述,TP5开发手册涵盖了从入门到精通的所有关键知识点...