Мне нужно установить regex как массив для маршрутов на моей странице, чтобы принять год. Что я имею в виду:PHP - regex as array key
$segment = URL::segment(0); //get first segment for example login, or 2015 - as year
$routes = [
"/" => "home.php",
"login" => "login.php",
"some_regex_here" => "year_posts.php"
]
//now check if $segment exists in array $routes
if(isset($routes[$segment])
URL::redirect($routes[$segment]);
else
URL::show404();//page in $segment isn't available in $routes array
Теперь, когда я иду в localhost/2015
, $segment
будет 2015
, поэтому он соответствует регулярному выражению условия в ключе, и он должен перенаправить меня year_posts.php
. У вас есть идеи, как это сделать?
Извините, это не имеет никакого смысла. По крайней мере, никто не смог объяснить. Массив не выполняет перенаправления, не может «перейти» к нему. Так почему бы вам не рассказать, что такое ваш вопрос _real_? Если ваш вопрос просто «то, что регулярное выражение соответствует строке« localhost/2015 », то я предлагаю вам прочитать базовое введение в регулярные выражения. Это ваш вопрос - это что-то другое, тогда скажите так. – arkascha
Нет, ты меня не понимаешь. Я получаю URL '$ segment' как' 2015'. Теперь я смотрю массив '$ routes', где мне приходится перенаправлять пользователя в соответствии с сегментом как массив ключей. Если сегмент соответствует регулярному выражению (допустимый год), 'redirect ($ routes [$ segment])', тогда как ключ 2015 не существует в массиве, но он соответствует регулярному выражению. Я надеюсь, что вы уже знаете, что я имею в виду. –
Если да, то почему бы вам не рассказать об этом в своем вопросе? И если да, то какой именно ваш вопрос? Помимо регулярного выражения для «2015»? Повторяю: начните читать введение в регулярные выражения. – arkascha