我有一个PHP脚本,它读取一个目录,然后将所有文件(在本例中为jpg)回显到jquery图像滑块。它工作得很好,但我不知道如何通过名称desending对图像进行排序。目前图像是随机的。
<?php
$dir = 'images/demo/';
if ($handle = opendir($dir)) {
while (false !== ($file = readdir($handle))) {
echo '<img src="'.$dir.$file.'"/>';
}
closedir($handle);
}
?>
对此的任何帮助都会很棒。
还有一件我不明白的事情。脚本在那个不存在的文件夹中出现2个无名的非jpg文件???但我还是真的检查了那个
答案 0 :(得分:6)
试试这个:
$dir = 'images/demo/';
$files = scandir($dir);
rsort($files);
foreach ($files as $file) {
if ($file != '.' && $file != '..') {
echo '<img src="' . $dir . $file . '"/>';
}
}
答案 1 :(得分:2)
尝试将每个项目放入一个数组中,然后对其进行排序:
$images = array();
while (false !== ($file = readdir($handle))) {
$images[] = $file;
}
natcasesort($images);
foreach ($images as $file) {
echo '<img src="'.$dir.$file.'"/>';
}
答案 2 :(得分:1)
asort()
升序 - arsort()
逆序
<?php
// You can use the desired folder to check and comment the others.
// foreach (glob("../downloads/*") as $path) { // lists all files in sub-folder called "downloads"
foreach (glob("images/*.jpg") as $path) { // lists all files in folder called "test"
$docs[$path] = filectime($path);
} arsort($docs); // sort by value, preserving keys
foreach ($docs as $path => $timestamp) {
// additional options
// print date("d M. Y: ", $timestamp);
// print '<a href="'. $path .'">'. basename($path) .'</a>' . " Size: " . filesize($path) .'<br />';
echo '<img src="'.$path.$file.'"/><br />';
}
?>
利用glob()
功能,您可以根据自己的喜好设置文件和文件夹。
要显示所有文件,请使用(glob("folder/*.*")
<?php
foreach (glob("images/*.jpg") as $file) { //change "images" to your folder
if ($file != '.' || $file != '..') {
// display images one beside each other.
// echo '<img src="'.$dir.$file.'"/>';
// display images one underneath each other.
echo '<img src="'.$dir.$file.'"/><br />';
}
}
?>