PHP 不停止包含(中断)

标签 php

我试图让我的脚本找到我的包含目录中的所有 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/

相关文章:

php - jquery ajax 分页与 php 问题

php - PHP 中的网站备份?

php - 如何在网站中包含虚拟键盘(数字键盘)?

php - 如何防止 PHP 中的 SQL 注入(inject)?

php - 创建链接服务器到Mysql Cpanel

php - 在 PHP 中你可以使用 || (或)以与javascript相同的方式?

javascript - 如何使用ajax检查数据库中是否已存在电子邮件?

PHP/MySql 用数组搜索数组

php - php中第二大绝对值形式的数组

php - Mysql 数字在 varchar 字段中进行比较