我正处于为我正在构建的 PHP 框架构建路由系统的概述阶段。
对于漂亮的 url,我需要使用 mod rewrite。我把那部分盖好了。但是说我想用如下网址制作一个页面:
www.domain.com/news/10(News-id)/
我希望这个动态变量( This news id )在重写时有一个名字。
我想要实现的是;
框架路由到新闻控制器,并将 10 作为参数传递为: $args = array ( 'news_id' => 10 )
我正处于为我正在构建的 PHP 框架构建路由系统的概述阶段。
对于漂亮的 url,我需要使用 mod rewrite。我把那部分盖好了。但是说我想用如下网址制作一个页面:
www.domain.com/news/10(News-id)/
我希望这个动态变量( This news id )在重写时有一个名字。
我想要实现的是;
框架路由到新闻控制器,并将 10 作为参数传递为: $args = array ( 'news_id' => 10 )
您可以使用$_SERVER
超级全局来检查请求的 URI。在您的示例中,$_SERVER['REQUEST_URI']
将设置为:
/news/10/
然后,您可以从该字符串中获取请求的 news-id。
更新
// Use substr to ignore first forward slash
$request = explode('/', substr($_SERVER['REQUEST_URI'], 1));
$count = count($request);
// At this point, $request[0] should == 'news'
if($count > 1 && intval($request[1])) {
// The second part of the request is an integer that is not 0
} else {
if( $count == 1) {
// This is a request for '/news'
// The second part of the request is either not an integer or is 0
} else if($request[1] == 'latest') {
// Show latest news
} else if($request[1] == 'oldest') {
// Show oldest news
} else if($request[1] == 'most-read') {
// Show most read news
}
}
请参阅手册条目$_SERVER