1

プロジェクトのリストがあり、プロジェクトごとに 3 つの img を表示する必要があります。私のコード:

$path = "works/";
$dont_show = Array("", "php", ".", "..");
$dir_handle = @opendir($path) or die("Error");

while($row = mysqli_fetch_array($results)){
    echo '<li>
        <span>'.utf8_encode($row["client"]).'</span>
        <ol>';
            while ($file = readdir($dir_handle)){
                $pos = strrpos($file,".");
                $extension = substr($file, $pos);

                if (!in_array($extension, $dont_show)) {
                    echo '<li><img src="'.$path . $file.'" /></li>';
                }
            }

            closedir($dir_handle);
        echo '</ol>
    </li>';
}

だから、私は自分のプロジェクトを垂直に、画像をそれぞれ水平に表示しようとしています。しかし、私は解決策を見つけることができません。

4

3 に答える 3

0

これを行う方がよい:

<?php
    $path = "works/";
    $dont_show = array("", "php", ".", "..");
    $dir_handle = @opendir($path) or die("Error");

    // Store the file list from folder (but only the accepted ones)
    $file_list = array();
    while (($file = readdir($dir_handle)) !== false) {
        $ext = pathinfo($file, PATHINFO_EXTENSION);
        if (!in_array($ext, $dont_show)) array_push($file_list, $file);
    }
    closedir($dir_handle);

    // Now do your while loops
    while($row = mysqli_fetch_array($results)){
        echo "<li><span>" . utf8_encode($row['client']) . "</span><ol>";

        foreach ($file_list AS $file) { // Loop stored values
            echo "<li><img src=\"{$path}{$file}\" alt=\"\" /></li>";
        }

        echo "</ol>";
    }
?>

echo "text {$variable} text"using は usingと同じであることに注意してくださいecho "text " . $variable . " text"

于 2013-05-27T07:18:17.330 に答える
-1
  /* This is the correct way to loop over the directory. */
    while (false !== ($file = readdir($dir_handle))) {

    }

    /* This is the WRONG way to loop over the directory. */
    while ($file = readdir($dir_handle)) {

    }

なんで?戻り値が FALSE と同じかどうかを明示的にテストしています。そうでない場合、名前が FALSE と評価されるディレクトリ エントリはループを停止します (たとえば、"0" という名前のディレクトリ)。

http://php.net/manual/en/function.readdir.phpを参照してください

于 2013-05-27T07:03:06.997 に答える