我试图让我的脚本找到我的包含目录中的所有 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";
}
}
?>
最佳答案
就目前而言,您的循环将在循环的每次迭代中包含默认页面,直到它与 get/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.
}
关于PHP 不停止包含(中断),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6169384/