1关于TP中空操作和路由问题

<?php
function test(){
$content="test demo @云峰天下";
$pattern='/@(\S+)\s/';
$content=preg_replace($pattern,'<a href="'.__APP__.'/user/index/uname/\\1">\\1</a>');
return $content;
}

最近在做一个微博,有一块是微博内容@用户加链接,跳转到用户页,刚开始感觉没什么难的,可以通过正则替换实现。

就像上面一样,将用户名使用get传值带到相应的控制器下面的方法下去。但是url确实太长,看了下视频中的介绍,使用了

空操作和路由进行了处理。

<?php
function test(){
$content="test demo @云峰天下";
$pattern='/@(\S+)\s/';
$content=preg_replace($pattern,'<a href="'.__APP__.'/user/\\1">@\\1</a>');
return $content;
}

将代码进行修改后如上,修改后链接是这样:<a href="localhost/weibo/user/云峰天下">@云峰天下</a>,但是user控制器下是没有这个方法的?

最后看完视频感觉tp挺强大的,是通过定义一个空操作和通过用户名获取用户id,再通过配置路由从而实现简化路由

 /**
* 空操作
*/
function _empty($name){
$this->_getUrl($name);
}
/**
* 处理用户名空操作,获得用户ID,跳转至用户个人页
*/
private function _getUrl($name){
$where=array('username'=>$name);
$uid=M('userinfo')->where($where)->getField('uid'); if(!$uid){
redirect(U('Index/index'));
}else{
redirect(U('/'.$uid));
//redirect(U('index',array('uid'=>$uid)));
}
}

在上面中由于是访问user下的每个用户名作为方法,会执行_empty()方法,该方法下调用私有方法_getUrl(),跳转到localhost/weibo/index.php/4(用户id号),由于该模块不存在,因此需要通过配置文件中的路由配置实现,如下

//URL路由配置
'URL_ROUTER_ON'=>true, //开启路由功能
'URL_ROUTE_RULES'=>array( //定义路由规则
':id\d'=>'User/index'
)

最新文章

  1. 一堆LCT板子
  2. [转]REST简介
  3. HTTPS 原理解析(转)
  4. Swift使用FMDB操作SQLite
  5. 每日会议&lt;第二天&gt;
  6. Hold住:坚持的智慧
  7. android--HttpURLConnection(转载)
  8. AppStore安装APP发生错误解决方法
  9. 解决LINUX vncserver 启动 could not open default font &amp;#39;fixed&amp;#39;错.
  10. mac环境下安装mysql
  11. 迁移学习︱艺术风格转化:Artistic style-transfer+ubuntu14.0+caffe(only CPU)
  12. 10_Android中通过HttpUrlConnection访问网络,Handler和多线程使用,读取网络html代码并显示在界面上,ScrollView组件的使用
  13. Android Studio添加aar依赖
  14. ELK收集tomcat状态日志
  15. 最近新明白的SQL小知识
  16. Java之资源文件读取
  17. ubuntu14.04 64位JDK安装
  18. Finally什么时候会被执行
  19. 处理URL传递中文乱码问题
  20. (四) ffmpeg filter学习-filter命令学习

热门文章

  1. [转载]CSS元素的定位position
  2. WebBrowser!
  3. ArcGIS API for Silverlight 编辑Geometry
  4. uptime命令具体解释——linux性能分析
  5. [推荐]ORACLE PL/SQL编程之五:异常错误处理(知已知彼、百战不殆)
  6. MvcPager分页控件以适用Bootstrap
  7. GIMP也疯狂之动态图的制作(二)
  8. Spring IOC 之ApplicationContext的其他功能
  9. javaproject积累——java 反射 invoke
  10. 单独一个img标签的居中显示