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 関数は「.」を返します。および「..」は結果から除外する必要があります。そのため、最初の 2 つの 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 に答える