Codeigniter - Регулярное выражение в операторе if? - PullRequest
2 голосов
/ 09 ноября 2011

Я хотел бы знать, как реализовать регулярное выражение в следующем выражении:

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

Мне нужно проверить, что сегмент uri имеет длину только один символ и только в алфавитном порядке.

Если нет, то перенаправить на страницу глоссария.

Как это возможно ??

Ответы [ 2 ]

3 голосов
/ 09 ноября 2011
if (!preg_match('/^[a-z]$/i', $this->uri->segment(3))) {
    redirect('tools/glossary');
}
2 голосов
/ 09 ноября 2011

Как уже отвечали другие, preg_match будет работать для вас. Однако, просто чтобы добавить альтернативу, codeigniter принимает регулярные выражения в правилах маршрутизации, так что вы можете иметь что-то в вашем config/routes.php как

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

Чтобы избежать перенаправления

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...