1

这是我的代码。

前 2 个 div 为空且无序,如何使用包含的 php 文件做正确的 div 框

<html>
    <head></head>
    <body>
    <?php
    $dir    = 'folder/';
    $files = scandir($dir);
    $count=0;
    foreach($files as $file){
        $count++;
        echo '<div style="float:left; margin: 0 0 10px 10px;border:1px solid       #50A4AB;  width:200px"><br>';
        if(strpos($file,".php")){
            include($dir.$file);
        }
        echo '</div><br>';
        if($count==7){echo'<div style="clear:both;"></div><br>';}
    }
    ?>
    </body>
</html>
4

2 回答 2

3

scandir 函数返回 '.' 和“..”,您必须将其从结果中排除。这就是前两个 div 为空的原因。

您还应该查看scandir 函数的文档以获取有关订单的信息。

您的 html 格式错误,导致 StackOverflow 代码高亮显示中断并且您的缩进不一致。当您寻求帮助时,您应该更加努力地使您的示例易于阅读。

于 2012-06-25T02:12:05.313 回答
0
  1. @mqsoh 所说的一切都是正确的。(+1)
  2. 您的代码存在巨大的安全风险。将文件夹中的所有 php 文件作为包含自动加载是危险的。您应该只加载已知的命名文件。
  3. 我已经编辑了您的问题,以便代码更相关。
  4. 您应该包含一个 if 语句,其效果是:

if ($file != "." && $file !="..") {
// Do stuff here
}

在您的代码中,如下所示:

foreach($files as $file){
    if ($file != "." && $file !="..") {
        $count++;
        echo '<div style="float:left; margin: 0 0 10px 10px;border:1px solid       #50A4AB;  width:200px"><br>';
        if(strpos($file,".php")){
            // This is a big security vulnerability
            include($dir.$file);
        }
        echo '</div><br>';
        if($count==7){echo'<div style="clear:both;"></div><br>';}
    }
}
于 2012-06-25T02:32:22.053 回答