在PHP中使用opendir()按字母顺序排序和显示目录列表

php noob在这里-我将这个脚本拼凑在一起,以显示带有opendir的文件夹中的图像列表,但是我无法弄清楚如何(或在哪里)按字母顺序对数组进行排序

<?php

// opens images folder

if ($handle = opendir('Images')) {

while (false !== ($file = readdir($handle))) {

// strips files extensions

$crap = array(".jpg", ".jpeg", ".JPG", ".JPEG", ".png", ".PNG", ".gif", ".GIF", ".bmp", ".BMP", "_", "-");

$newstring = str_replace($crap, " ", $file );

//asort($file, SORT_NUMERIC); - doesnt work :(

// hides folders, writes out ul of images and thumbnails from two folders

if ($file != "." && $file != ".." && $file != "index.php" && $file != "Thumbnails") {

echo "<li><a href=\"Images/$file\" class=\"thickbox\" rel=\"gallery\" title=\"$newstring\"><img src=\"Images/Thumbnails/$file\" alt=\"$newstring\" width=\"300\" </a></li>\n";}

}

closedir($handle);

}

?>

任何建议或指针将不胜感激!

回答:

您需要先将文件读入数组,然后才能对它们进行排序。这个怎么样?

<?php

$dirFiles = array();

// opens images folder

if ($handle = opendir('Images')) {

while (false !== ($file = readdir($handle))) {

// strips files extensions

$crap = array(".jpg", ".jpeg", ".JPG", ".JPEG", ".png", ".PNG", ".gif", ".GIF", ".bmp", ".BMP", "_", "-");

$newstring = str_replace($crap, " ", $file );

//asort($file, SORT_NUMERIC); - doesnt work :(

// hides folders, writes out ul of images and thumbnails from two folders

if ($file != "." && $file != ".." && $file != "index.php" && $file != "Thumbnails") {

$dirFiles[] = $file;

}

}

closedir($handle);

}

sort($dirFiles);

foreach($dirFiles as $file)

{

echo "<li><a href=\"Images/$file\" class=\"thickbox\" rel=\"gallery\" title=\"$newstring\"><img src=\"Images/Thumbnails/$file\" alt=\"$newstring\" width=\"300\" </a></li>\n";

}

?>

编辑:这与您要的内容无关,但是您也可以使用pathinfo()函数对文件扩展名进行更通用的处理。然后,您不需要扩展的硬编码数组,就可以删除任何扩展。

以上是 在PHP中使用opendir()按字母顺序排序和显示目录列表 的全部内容, 来源链接: utcz.com/qa/413418.html

回到顶部