首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有正则表达式含义的codeigniter路由

具有正则表达式含义的codeigniter路由
EN

Stack Overflow用户
提问于 2018-08-17 11:22:43
回答 1查看 176关注 0票数 2

谁能给我基于这些正则表达式路由的真实示例,这些示例与用于重定向到codeigniter 3控制器的正则表达式codeigniter路由匹配:

代码语言:javascript
复制
    $route['(file|image)-([0-9]+)-([A-Za-z0-9\_]+)'] = 'General/$1/$2/$3';
    $route['noimage-([0-9]+)-([0-9]+)-([A-Za-z0-9\_]+)'] = 'General/noimage/$1/$2/$3';
    $route['noimage-([0-9]+)-([0-9]+)'] = 'General/noimage/$1/$2';
    $route['remove-my-file/([0-9]+)-([A-Za-z0-9\_]+)'] = 'General/removeMyFile/$1/$2';
    $route['([a-z]{2})'] = 'General/index/$1'; 
    $route['([a-z]{2})/([A-Za-z\_]+)-index'] = '$2/index/$1';
    $route['([a-z][a-z])/account-setting']= "General/accountSetting/$1";
    $route['([a-z][a-z])/(login|logout)']= "Registration/$2/$1";
    $route['([a-z][a-z])/user-registration/active/([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+)']= "Registration/activeAccount/$1/$2/$3";
    $route['([a-z][a-z])/set-new-password/([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+)']= "Registration/setNewPassword/$1/$2/$3";
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-17 15:09:04

代码语言:javascript
复制
    $route['(file|image)-([0-9]+)-([A-Za-z0-9\_]+)'] = 'General/$1/$2/$3';

    file-01-AB -> General::index('file', '01', 'AB')
    image-02-CD -> General::index('image', '02', 'CD')
##
    $route['noimage-([0-9]+)-([0-9]+)-([A-Za-z0-9\_]+)'] = 'General/noimage/$1/$2/$3';

    noimage-01-02-AB -> General::noimage('01', '02', 'AB')
##
    $route['noimage-([0-9]+)-([0-9]+)'] = 'General/noimage/$1/$2';

    noimage-01-02 -> General::noimage('01', '02')
##
    $route['remove-my-file/([0-9]+)-([A-Za-z0-9\_]+)'] = 'General/removeMyFile/$1/$2';

    remove-my-file/01-AB02 -> General::removeMyFile('01', 'AB02')
##
    $route['([a-z]{2})'] = 'General/index/$1';

    ab -> General::index('ab')
##
    $route['([a-z]{2})/([A-Za-z\_]+)-index'] = '$2/index/$1';

    ab/Cd-index -> Cd::index('ab')
##
    $route['([a-z][a-z])/account-setting']= "General/accountSetting/$1";

    ab/account-setting -> General::accountSetting('ab')
##
    $route['([a-z][a-z])/(login|logout)']= "Registration/$2/$1";

    ab/login -> Registration::login('ab')
    bc/logout -> Registration::logout('bc')
##
    $route['([a-z][a-z])/user-registration/active/([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+)']= "Registration/activeAccount/$1/$2/$3";

    ab/user-registration/active/aB03/04Dc -> Registration::activeAccount('ab', 'aB03', '04Dc')
##
    $route['([a-z][a-z])/set-new-password/([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+)']= "Registration/setNewPassword/$1/$2/$3";

    ab/set-new-password/aB03/04Dc -> Registration::setNewPassword('ab', 'aB03', '04Dc')

要在函数中使用的"(“")”集合和索引的内部,第一个()是$1,第二个参数是$2,依此类推……

代码语言:javascript
复制
0-9 means number
a-z lowercase letters
A-Z uppercase letters
+ means more than 1 match
(file|image) means and OR
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51887966

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档