如何为URL路由preg_match ID

时间:2018-08-28 16:53:27

标签: php regex

我已经找到了关于Catching ids and its values from a string with preg_match的问题,而标题正是我所需要的。 但是 ,我不确定如何将其适应我的路由系统。我不确定如何将其转换为字符串中间的ID。

我有以下代码来查看是否匹配:

if ( preg_match( $url, $route ) ) {

    echo 'matched';

}

我也有这段代码,它在实际用于查看URL是否应包含ID之前准备了路由。如果应该(通过使用{id}占位符),则需要用正则表达式替换它,以便它可以匹配其中具有ID的URL。

$route = str_replace( '{id}', '[A-Za-z0-9]', $route );
$route = '~^' . $route . '~';

这是给出的URL:

'/admin/posts/edit/1/'

这是它应该成功匹配的路由:

'~^/admin/posts/edit/[A-Za-z0-9]/~'

现在,它似乎不起作用,很明显我在这里犯了某种错误,但是我不知道在哪里,我的正则表达式搜索没有对我产生任何明显的影响。

我该如何匹配它?

0 个答案:

没有答案