2012-10-09 75 views
0

你好,我有这样的代码在PHP中的文件夹中显示的图像:显示图像

$handle = opendir(dirname(realpath(__FILE__)).'/galerija/accomodation/'); 
while($file = readdir($handle)) { 
    if($file !== '.' && $file !== '..') { 
     echo '<img src="galerija/accomodation/'.$file.'" rel="colorbox" />'; 
    } 
} 

,它的工作寄托都很好,但是我怎么可以设置显示的名字什么的文件夹分类器,因为我真的需要对这些图像进行排序,并且这个脚本只显示随机图像。谢谢。

+1

阵列中的存储文件的名称,排序的数组,然后显示出来。 – Dev

回答

1

你应该在这里找到答案: Sorting files by creation/modification date in PHP

还有其他类似的帖子在那里你可以得到另一个有用的功能进行排序。

使你的代码应该是这个样子:

if($h = opendir(dirname(realpath(__FILE__)).'/galerija/accomodation/')) { 
    $files = array(); 
    while(($file = readdir($h) !== FALSE){ 
    if($file !== '.' && $file !== '..'){ 
     $files[] = stat($file); 
    } 
    } 

    // do the sort 
    usort($files, 'sortByName'); 

    // do something with the files 
    foreach($files as $file) { 
      echo '<img src="galerija/accomodation/'.$file.'" rel="colorbox" />'; 
    } 
} 

//some functions you can use to sort the files 
//sort by change time 
//you can change filectime with filemtime and have a similar effect 
function sortByChangeTime($file1, $file2){ 
    return (filectime($file1) < filectime($file2)); 
} 

function sortByName{ 
    return (strcmp($file1,$file2)); 
} 
+0

“语法错误,第5行”php路径中出现意外的T_IF“我该如何解决这个问题 –

+0

我最后一次编辑应该做的伎俩,有一个分号不属于那里,我的错 – decebal

2

glob使用和sort

$files = glob("*.jpg"); 
sort($files); 
foreach ($files as $file) { 
    .... 
} 
+0

你可以把我的代码全部放在一起吗 –

+2

不,我不会为你写代码,你必须自己动手。 – Sjoerd

0

您应的图像($files)第一存储阵列,例如$aImages[] = $file。您可以使用PHP的几种排序函数对数组进行排序。 asort(), usort(), sort()...。见http://php.net/manual/en/ref.array.php