Codeigniter - if语句中的正则表达式?

时间:2011-11-09 14:30:07

标签: php regex codeigniter uri

我想知道如何在以下语句中实现正则表达式:

if($this->uri->segment(3) !== 'a,b,c...') {
         redirect 'tools/glossary';
        }

我需要检查uri段的长度只有一个字符,只是按字母顺序排列。

如果没有,则重定向到词汇表页面。

这怎么可能?

2 个答案:

答案 0 :(得分:3)

if (!preg_match('/^[a-z]$/i', $this->uri->segment(3))) {
    redirect('tools/glossary');
}

答案 1 :(得分:2)

正如其他人已经回答的那样,preg_match将为您效劳。但是,为了提供替代方案,codeigniter在路由规则中接受正则表达式,因此您可以在config/routes.php中添加某些内容

$route['somecontroller/someaction/([a-zA-Z])'] = "somecontroller/someaction/$1";
$route['somecontroller/someaction/(:any)'] = "tools/glossary";

避免重定向