thinkphp U方法 跨入口生成连接
来源:互联网 发布:淘宝代装修接活儿 编辑:程序博客网 时间:2024/05/17 00:16
案例:项目中有index.php和admin.php两个入口,一个前台一个后台,考虑到项目安全性问题后台用户可以自定义文件夹入口名。比如新闻管理里有一个查看预览按钮需要跳转到前台这时问题就来了。
了解:thinkphp中U方法无法跨入口生成路径
如http://www.xxx.com
U('User/add') // 生成User模块的add操作地址如下所示//http://www.xxx.com/index.php/User/add
后台中
U('User/add')//http://www.xxx.com/admin.php/User/add
现在问题来了,如何生成和前台一样的地址呢?
commom/function.php/** * 转换网址 * @param string $weburl 网址或者U方法的参数 * @param boolean $rnd 是否添加随机数 * @param boolean $flag 是否转换index.php * @return string */function go_link($weburl = 'http://www.ruoshuiyx.com/', $rnd = 0, $flag = 1) { if (strpos($weburl, 'http://') === 0 || strpos($weburl, 'https://') === 0 || strpos($weburl, 'ftp://') === 0 ) { $weburl = U(C('DEFAULT_MODULE'). '/Go/link',array('url' => base64_encode($weburl))); } else { $weburl = U($weburl); } if ($flag) { $search = $_SERVER['SCRIPT_NAME'];//$_SERVER['PHP_SELF']; $replace = rtrim(dirname($search),"\\/"). '/index.php'; $weburl = str_replace($search, $replace, $weburl); } //随机数 if ($rnd) { $weburl .= '#'.rand(1000,time()); } return $weburl;}
//admin/common/function.php/** * 返回文档url,主要针对模型下的文章[或者必须有flag,jumpurl字段的文档] * @param array $arc 文档内容 * @param integer $typeid 类型 * @param string $tvalue 表单类型和可选值 * @param string|integer $vaule 值 * @return mixed */function view_url($arc , $act = 'Show/index') { if (($arc['flag'] & B_JUMP) && !empty($arc['jumpurl'])) { $url = go_link($arc['jumpurl']); } else { $url = go_link(C('DEFAULT_MODULE'). '/'. $act. '?cid='. $arc['cid']. '&id='. $arc['id'], 1); } return $url;}//使用[<a target='_blank' href='{$v|view_url}'>查看</a>]$v是循环的文章明细
原理就是在admin中通过view_url方法传递CID(栏目ID),ID(文章ID),控制器/方法到go_link中进行处理。
0 0
- thinkphp U方法 跨入口生成连接
- thinkphp 使用U方法自动生成URL超链接
- thinkphp 使用U方法自动生成URL超链接
- thinkphp中U方法按路由规则生成url
- ThinkPHP U方法
- thinkphp html中U方法
- thinkphp U方法添加变量
- U方法传参数-ThinkPHP
- thinkphp中U方法调用
- ThinkPHP函数详解:U方法
- ThinkPHP U方法更换入口
- ThinkPHP函数详解:U方法
- ThinkPHP函数详解:U方法
- thinkphp-U方法传参
- ThinkPHP函数详解:U方法
- thinkphp 生成缓存 方法
- ThinkPHP连接Mongodb方法
- ThinkPHP框架中的U方法分析
- robomongo的使用
- 机器学习——深度学习(Deep Learning)经典资料
- UVa 232 Crossword Answers
- sec-wiki
- HPU 2686--Matrix【最大费用最大流 && 经典建图】
- thinkphp U方法 跨入口生成连接
- PHP trigger_error() 函数
- hdoj 2036 改革春风吹满地
- POJ3411--Paid Roads
- Java线程(八):锁对象Lock-同步问题更完美的处理方式
- External Storage外部存储——SD卡
- Winform 中 treeview 多选
- Struts(13)验证框架
- sql用法