我想按数字顺序对目录的内容进行排序。目录的内容是图像。现在,图像文件随机显示。每次将新图像添加到目录时,它都会在页面上随机显示。请指教!谢谢!
<?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();
?>
答案 0 :(得分: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=""/>';
}
答案 1 :(得分: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=""/>';
}
}
答案 2 :(得分: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=""/>';
}
?>
答案 3 :(得分: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=""/>';
}
?>