0

我想按数字顺序对目录的内容进行排序。目录的内容是图像。现在图像文件是随机显示的。每次将新图像添加到目录时,它都会随机显示在页面上。请指教!谢谢!

<?php

// set image directory
$image_dir = "main";

//Open images directory
$dir = @ dir($image_dir);
?>


<?php

//List files in images directory
while (($file = $dir->read()) !== false)
{
  // remove  dir dots
if ($file !== '.' && $file !== '..') {

// print out images
echo '<img src="'. $image_dir . '/' . $file .'" height="600" alt=""/>';

}
}
$dir->close();
?> 
4

4 回答 4

1

将文件加载到数组中,然后根据需要进行排序

$files = array();
while (($file = $dir->read()) !== false)
{
    // remove  dir dots
    if ($file !== '.' && $file !== '..') {
        // add file to array
        $files[] = $file;
    }
}

// sort array - I recommend "natural" sort, but check what other options are available
// http://www.php.net/manual/en/array.sorting.php

natsort($files);

// print out images
foreach($files as $file) {
    echo '<img src="'. $image_dir . '/' . $file .'" height="600" alt=""/>';    
}    
于 2013-02-22T04:53:03.163 回答
0

将其保存在临时数组中,然后对其进行排序

while (($tfile = $dir->read()) !== false)$temp_arr[] = $tfile;
sort($temp_arr);
foreach(temp_arr as $file)
{
// remove  dir dots
if ($file !== '.' && $file !== '..') {

// print out images
echo '<img src="'. $image_dir . '/' . $file .'" height="600" alt=""/>';

}
}
于 2013-02-22T04:51:06.447 回答
0

先创建一个数组,排序,然后输出html。

<?php

// set image directory
$image_dir = "main";

//Open images directory
$dir = @dir($image_dir);

// create array to hold images
$images = array();

//List files in images directory
while (($file = $dir->read()) !== false)
{
    // remove  dir dots
    if ($file !== '.' && $file !== '..') {

        // add file to image array
        $images[] = $file;

    }
}

// close the directory
$dir->close();

// sort the images by number
sort($images, SORT_NUMERIC); 

// print out images
foreach ($images as $file)
{
    echo '<img src="'. $image_dir . '/' . $file .'" height="600" alt=""/>';
}

?> 
于 2013-02-22T04:52:24.837 回答
0
<?php

// set image directory
$image_dir = "main";
$images=array();

//Open images directory
$dir = @ dir($image_dir);
?>


<?php

//List files in images directory
while (($file = $dir->read()) !== false)
{
  // remove  dir dots
if ($file !== '.' && $file !== '..') {

$images[]=$file;

}
}
$dir->close();
sort($images, SORT_NUMERIC);
foreach ($images as $image) {
// print out images
    echo '<img src="'. $image_dir . '/' . $image .'" height="600" alt=""/>';
}

?>
于 2013-02-22T04:55:34.147 回答