这是否可以通过pagewitch实现?

时间:2015-06-05 09:21:02

标签: php url if-statement include

通常我会将url参数用于pageswitch,

让我说我有这个开关 所以p是页面

if(isset($_GET['p']){
    $page = $_GET['p'];
    if(file_exists('includes/' . $page . '.php')){
        // include the page
    } else {
        // include error page
    }
} else {
    // include homepage
}

我的网址看起来像这样:

http://www.example.com?p=contact

是否可以使用这样的网址开启一个网页开关:

http://www.example.com/contact

在网址末尾提到缺少的.php。

并且有人可以告诉我这个php if else语句是否是包含文件的正确方法?

1 个答案:

答案 0 :(得分:0)

是的,可以使用http://www.example.com/contact等页面进行页面切换。

然而,您需要重新编写流量,因此如果您有权访问.htacess文件,则可以添加类似的内容

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^/(.+)/?$ http://www.example.com?p=$1 [NC,L,QSA]

这样用户可以导航到/联系,它将重定向到?p = contact

如果您有很多页面,我建议您使用switch语句检查$ _GET吗?

您案例中的switch语句可能如下所示......

if(isset($_GET['p'])){
   $page = $_GET['p'];
   switch($page){

     case 'contact':
       if(file_exists('includes/' . $page . '.php')){
          // include the page
      } else {
          // include error page
      }
      break; 

   }
}else{

}

希望这有帮助