如果包括一次成功

时间:2014-03-17 17:13:20

标签: php if-statement include

我在if,elseif和其他方面遇到了一些麻烦。

如果网址是example.com,则包含sites / home.php
Elseif url是example.com/test include sites / $ url.php
其他包括sites / 404.php

这是我的代码:

            if ($url=='')

                include_once "sites/home.php";
            elseif (What to put here!!!? I need the elseif to happend if it is possible to include the $url file){
                include_once "sites/$url.php";

            }

            else {
                include_once 'sites/404.php';

            }

希望你们理解我的问题。我无法以另一种方式真正地赎罪

5 个答案:

答案 0 :(得分:0)

我将如何做到这一点。

if ($url=='') {
    include_once "sites/home.php";
}else if (file_exists("$url.php") && is_readable("$url.php")){
    include_once "sites/$url.php";
}else {
    include_once 'sites/404.php';
}

答案 1 :(得分:0)

阅读文档(但未经过测试):

"include returns FALSE on failure and raises a warning" 

参考:http://www.php.net/manual/en/function.include.php

然后,您的代码将是:

        if ($url=='') {
             include_once "sites/home.php"
        }
        else {
              if (include_once sites/$url.php) {
                   // Do nothing : it worked !
              } 
              else {
                  include_once "sites/404.php";
              }
        }

答案 2 :(得分:0)

您似乎想使用include指令来确定文件是否存在。根据{{​​3}}:

  

处理返回:include失败时返回FALSE并发出警告。

因此你需要:

  • 使用@运算符
  • 取消警告
  • false运算符
  • 进行比较===

它会起作用,但它会是一个糟糕的黑客。我建议你重新考虑你的逻辑,这样你就可以了解哪些文件可以包含在内。

答案 3 :(得分:0)

if ($url=='') {
   include_once "sites/home.php";
} elseif (file_exists($url)) {
   include_once "sites/$url.php";
} else { 
   include_once 'sites/404.php';
}

答案 4 :(得分:-1)

您可以测试该文件及其是否存在,并且该脚本具有读取该文件的权限。

if ($url=='') {
      include_once "sites/home.php";
}
elseif (file_exists( $url . ".php") && is_readable($url . ".php")){  
        include_once "sites/" . $url . ".php";        
}
else {
      include_once 'sites/404.php';
}