我正在尝试让我的脚本找到我的include目录中的所有PHP文件并将它们放入一个数组(我已经完成了数组部分)。然后,脚本执行for循环以检查GET请求是否与数组中的当前位置值匹配(或者您想要调用它的任何内容)。
但是,如果它根本找不到它......它将包含默认页面,但显然如果它确实包含它匹配的文件。
问题是.. break命令根本不起作用。所以,它包括默认页面,如果匹配的话。请帮忙。
<?php
if(!defined("PLUGIN")){
echo "You cannot view this file directly.";
} else {
$glob = glob("inc/*.php");
$count = count($glob);
for($i=0;$i<$count;$i++){
$explode = explode("/", $glob[$i]);
$explode2 = explode(".", $explode[1]);
if($_GET["page"] == $explode2[0]){
include $glob[$i];
break;
} include_once "default.php";
}
}
?>
答案 0 :(得分:4)
现在,你的循环将在循环的每次迭代中包含默认页面,直到它与get / explode组合匹配。
同样,使用explode来分析文件路径是不好的做法。相反,请使用path_info()
:
$found = false;
foreach ($glob as $file) {
$basename = path_info($file, PATHINFO_FILENAME);
if ($basename == $_GET['page']) {
$found = true;
break;
} else {
include($basename); // probably need to adjust this to make it a full filename
}
}
if (!$found) {
include('default.php'); // include this only if no other match was found.
}