Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 这可以通过页面开关实现吗?_Php_Url_If Statement_Include - Fatal编程技术网

Php 这可以通过页面开关实现吗?

Php 这可以通过页面开关实现吗?,php,url,if-statement,include,Php,Url,If Statement,Include,通常我会使用url参数进行页面切换 假设我有这个开关 所以p是页面 if(isset($_GET['p']){ $page = $_GET['p']; if(file_exists('includes/' . $page . '.php')){ // include the page } else { // include error page } } else { // include homepage } 我的url如

通常我会使用url参数进行页面切换

假设我有这个开关 所以p是页面

if(isset($_GET['p']){
    $page = $_GET['p'];
    if(file_exists('includes/' . $page . '.php')){
        // include the page
    } else {
        // include error page
    }
} else {
    // include homepage
}
我的url如下所示:

是否可以使用具有如下url的页面开关:

在url的末尾提到缺失的.php


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

是的,可以使用页面切换,例如

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

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^/(.+)/?$ http://www.example.com?p=$1 [NC,L,QSA]
通过这种方式,用户可以导航到/contact,它将重新定向到?p=contact

如果您有很多页面,我可以建议您使用switch语句检查您的$\u 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{

}

希望这有帮助

没问题,编码快乐!