php读取目录排序
我有一个小php脚本,它读取一个目录,然后将所有文件(在本例中为jpg)回送到一个jquery图像滑块中。它工作得很好,但我不知道如何按名称对图像进行排序。目前,这些图像是随机的php读取目录排序,php,readdir,Php,Readdir,我有一个小php脚本,它读取一个目录,然后将所有文件(在本例中为jpg)回送到一个jquery图像滑块中。它工作得很好,但我不知道如何按名称对图像进行排序。目前,这些图像是随机的 <?php $dir = 'images/demo/'; if ($handle = opendir($dir)) { while (false !== ($file = readdir($handle))) { echo '<img src="'.$dir.$file.'"/>'; }
<?php
$dir = 'images/demo/';
if ($handle = opendir($dir)) {
while (false !== ($file = readdir($handle))) {
echo '<img src="'.$dir.$file.'"/>';
}
closedir($handle);
}
?>
这方面的任何帮助都会很好
还有一件事我不明白。脚本在该文件夹中创建了2个不存在的无名非jpg文件???但我还没有真正检查过这一点尝试将每个项目放入一个数组中,然后对其进行排序:
$images = array();
while (false !== ($file = readdir($handle))) {
$images[] = $file;
}
natcasesort($images);
foreach ($images as $file) {
echo '<img src="'.$dir.$file.'"/>';
}
$images=array();
while(false!=($file=readdir($handle))){
$images[]=$file;
}
natcasesort($图像);
foreach($图像作为$文件){
回声';
}
试试这个:
$dir = 'images/demo/';
$files = scandir($dir);
rsort($files);
foreach ($files as $file) {
if ($file != '.' && $file != '..') {
echo '<img src="' . $dir . $file . '"/>';
}
}
$dir='images/demo/';
$files=scandir($dir);
rsort(文件);
foreach($files作为$file){
如果($file!='.&&$file!='..')){
回声';
}
}
编辑:
使用asort()函数对版本进行排序。
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 />';
}
?>
这个
或
应该是一个和
谢谢,这很好用。我相信其他的建议也会奏效。这个看起来最简单。只有一个问题。我不懂分拣部分。目前,它对图像进行排序,我如何对它们进行排序,使其处于下降状态?我需要最高值10.jpg为第一个,1.jpg为最后一个。默认情况下,它是升序的。您可以使用rsort
进行降序,然后回答updated@ManojYadav干得好,Manoj!Cheers@PietBezManoj做得很好,但我必须指出,确保您的文件夹中只有.jpg
文件。如果您有一个“索引”文件或任何其他非图像文件,将显示为一个损坏的图像。我只是觉得你应该意识到这一点。干杯(附言:我没有从Manoj的答案中拿走,这是一个很好的答案):(和平)“然后回显所有文件(本例中为jpg)”,因为$dir='images/demo/
假设您只有.jpg
文件。如果没有,它将显示其中的每个文件。您可以使用foreach(glob(“folder/*.jpg”)作为$dir{
。@OP(Piet Bez)如果您觉得有人已经回答了您的问题,并且问题已经解决,您可以接受一个,这样它将被标记为已解决。否则,它将保持“未回答”。干杯(Peace)太好了,这是实现排序的最微创的更改。
<?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 />';
}
}
?>