处理URL参数

时间:2013-10-22 09:06:28

标签: php html apache htdocs

我使用PHP构建自定义网站,它几乎就像一个CMS,在这里我将有类别,子类别和页面/帖子,所以我的预期网址就像

mysite.com/category/sub-category/page-name/

并且这个层次结构不是常数,我可能会得到3个或更多子类别,我也会在同一个网址中有分页参数,如

mysite.com/category/sub-category/page-name/6

所以,在我的网站中,index.php将只处理所有的URL,就像在其他CMS中一样,但我不知道如何拆分这个URL以及如何知道哪个是页面名称,哪个分页参数,哪个是类别参数和所有,请帮助我实现这一目标。

1 个答案:

答案 0 :(得分:0)

您所追求的是一个“前端控制器”,一个PHP文件,可以处理进入您应用程序的每个请求。

正如RiggsFolly所提到的,大多数PHP框架都内置了它们。这是Symfony的前端控制器(我的支持PHP框架)

// index.php
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
$request = Request::createFromGlobals();
$path = $request->getPathInfo(); // the URI path being requested

if (in_array($path, array('', '/'))) {
    $response = new Response('Welcome to the homepage.');
} elseif ($path == '/contact') {
    $response = new Response('Contact us');
} else {
    $response = new Response('Page not found.', 404);
}
$response->send();