请求到另一页 - 用header()或include实现?

时间:2014-08-14 19:58:33

标签: php header include request

在我的项目中,我使用干净的URL,所有请求都将转发到index.php。 在index.php中,我有一个routing-aprt,它检查switch / case-construct中的URL-Parameter并包含相应的站点。

但是包括正确的工具吗?或者我应该使用header()吗?

4 个答案:

答案 0 :(得分:1)

我建议你使用一些简单的路由类,它将根据你的url + autoloader加载控制器,以包含控制器类。

答案 1 :(得分:1)

转发页链接使用此

<?php 

header("location:index.php");

?>

答案 2 :(得分:1)

header用于操纵原始http标头。 I.E.标题(“位置:http://www.google.com”)

include用于包含和评估特定文件。换句话说,当前应用程序可以使用包含文件中的变量和函数。

所以,我相信你会想要一个包含你的意图。如果我理解正确的话。

答案 3 :(得分:1)

使用include根据URL有条件地运行PHP代码。 header用于响应的内容,例如将用户发送到另一个网址。

在最基本的级别,您可以在index.php中使用路由实现such as this

if ($_GET['q']) {
  // Break the request into it's path parts
  $path_parts = explode('/', $_GET['q']);
  $section = $path_parts[0];
}
else {
  $section = 'home';
}

switch ($section) {
  case 'home':
    // For requests to the home page
    require('home.html');
  case 'about':
    // For URLs like http://www.example.com/about
    require('about.html');
    break;
  case 'login':
    if (check_login()) {
        header('Location: http://www.example.com/');
    }
    else {
        require('login.html');
    }
    break;
  case 'wiki':
    // For URLs like http://www.example.com/wiki/Document
    $page = empty($path_parts[1]) ? '' : $path_parts[1];
    require('wiki.php');
    break;
  default:
    // Unexpected page requests should get a 404
    header("HTTP/1.0 404 Not Found");
    include('error.html');
    break;
}