我在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';
}
希望你们理解我的问题。我无法以另一种方式真正地赎罪
答案 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';
}