所以我遇到了一些麻烦,我想随机订购所有文件夹,以便用缩略图在网格中显示它们,所以这里是我的代码
<?php
if ($handle = opendir('.')) {
$blacklist = array('.htaccess', '.', '..', 'css', 'js', 'fonts', 'images', 'cv.pdf', 'includes', 'index.php', '.DS_Store', 'About');
echo "<ul class='grid' id='grid'>";
while (false !== ($file = readdir($handle))) {
if (!in_array($file, $blacklist)) {
shuffle($file);
$titre = file_get_contents($file . "/" . "Titre.txt");
$categorie = file_get_contents($file . "/" . "Categorie.txt");
$class_isotope = file_get_contents($file . "/" . "Classe.txt");
echo "<li class='element mix " . $class_isotope . "' ><a href=" . $file . ">
<img src='images/thumb-" . $file . ".jpg' alt='' /><div><h3>" . $titre . "
<span class='subtitle'>" . $categorie . "</span></h3></div></a></li>";
}
}
echo "</ul>";
closedir($handle);
}
?>
我尝试使用shuffle功能,但它不起作用。
如果你可以帮助我,那就太好了。提前谢谢。
答案 0 :(得分:0)
$file
包含单个文件引用,作为字符串
它不是目录
中所有文件的数组 shuffle(&$arr)
期望通过引用传递的数组作为参数$arr
所以不会使用字符串
如果你想随机化目录中文件的顺序,首先构建一个包含所有文件的数组,然后对其进行随机播放,然后对每个文件进行必要的操作。
答案 1 :(得分:0)
好吧,所以我使用了它,它完美地运作了:
$files = array();
$dir = new DirectoryIterator('.');
foreach ($dir as $fileinfo) {
$files[$fileinfo->getMTime()] = $fileinfo->getFilename();
}
shuffle($files);
echo "<ul class='grid' id='grid'>";
foreach($files as $file){
if ($file == "index.php" or $file == ".." or $file == "/" or $file == "." or $file == "css" or $file == "js" or $file == "fonts" or $file == "images" or $file == "cv.pdf" or $file == "includes" or $file == ".DS_Store" or $file == "About" or $file == "404.php" ){
}else{
$titre = file_get_contents($file."/"."Titre.txt");
$categorie = file_get_contents($file."/"."Categorie.txt");
$class_isotope = file_get_contents($file."/"."Classe.txt");
echo "<li class='element mix ".$class_isotope."' ><a href=".$file."><img src='images/thumb-".$file.".jpg' alt='' /><div><h3>".$titre."<span class='subtitle'>".$categorie."</span></h3></div></a></li>";
}
}
echo "</ul>";