最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
CI框架中PHP正则(不用转义)做法
时间:2014-12-12 编辑:简简单单 来源:一聚教程网
我们在书写PHP正则的时候,正则的修饰定义符通常定义为 / ,而定义为 / 的带来的麻烦是如果正则表达式含中有 / 则需要转义书写为 \/ 这让读正则的人看的比较晕乎。书写也比较烦琐。
为了避免这个情况,可以把正则的修饰定义符定义为 # 。
例子:
代码如下 | 复制代码 |
$uri = 'art/33/44'; preg_match_all('#^art(/\d+)(/\d+)#',$uri,$arr); //等价于下面注释的 //preg_match_all('/^art(\/\d+)(\/\d+)/',$uri,$arr); echo ' '; |
话说CI框架,在路由解析功能上。也是这么干的。CI相关代码如下:
[路由定义文件 application/config/routes.php]
代码如下 | 复制代码 |
$route['default_controller'] = "welcome"; $route['404_override'] = ''; $route['art/(\d+)(/\d*)'] = "test/aaa/$1/"; |
[路由解析类 system/core/Router.php]
代码如下 | 复制代码 |
function _parse_routes() // Loop through the route array looking for wild-cards // Does the RegEx match? return $this->_set_request(explode('/', $val)); // If we got this far it means we didn't encounter a |
这样的话,在CI框架里书写路由规则的时候,如果正则规则里有/,则可以不用转义!
-
上一个: yii生成sql语句操作数据库实例
-
下一个: 简单的Thinkphp快速入门教程
相关文章
- PHP导出数据超时的优化建议解读 10-31
- PHP之mysql位运算解析 10-31
- Laravel实现登录跳转功能解析 10-31
- php双向队列解读 10-31
- Laravel异常上下文解决教程 10-24
- php数组查询元素位置方法介绍 10-24