PHP азбучен ред в readdir();

jaffy

Registered
Добър вечер, Може ли да попитам как с този скрипт да изкарам снимките в азбучен ред. Взет е от този сайт и е малко преправен. В момента дори и не мога да зацепя как ги изкарва.. не е нито по азбучен , нито по размер .. нз.. Благодаря ви! :)

$directory="./snimki/";
$dir=opendir("$directory");
$i=0;
while($file=readdir($dir)) {
$ext=strtolower(end(explode(".",$file)));
if($ext=="png" || $ext=="gif" || $ext=="jpeg" || $ext=="jpg") {
list($width,$height,$type,$attr)=getimagesize("$directory$file");
echo "<a href='$directory$file' rel='lightbox' title='Pics' style='padding: 2px;'><img src='$directory$file' width='150' height='125' style='border: 1px solid black;padding: 5px !important;' /></a> ";
$i++;
}
}
closedir($dir);
 
Разгледай двата примера от тази тема.
Нямам време да го пробвам , но мисля ,че трябва да проработи.
 
readdir(); чете в случаен ред и затова масива е хаотичен.

Използвай сортиране:

sort();

http://bg2.php.net/manual/bg/function.sort.php

или по-добре

natsort();

http://bg2.php.net/manual/bg/function.natsort.php


$directory="./snimki/";
$dir=opendir("$directory");

while($file=readdir($dir))
{
$fm[]=$file; //sybirame v masiv
}

closedir($dir);

natsort($fm); //sortirane


while(list(, $file)=each($fm))
{
$ext=strtolower(end(explode(".",$file)));
if($ext=="png" || $ext=="gif" || $ext=="jpeg" || $ext=="jpg") {
list($width,$height,$type,$attr)=getimagesize("$directory$file");
echo "<a href='$directory$file' rel='lightbox' title='Pics' style='padding: 2px;'><img src='$directory$file' width='150' height='125' style='border: 1px solid black;padding: 5px !important;' /></a> ";
$i++;
}
}

:?:
 
Да получи се, благодаря много!

С този скрипт го направих:
<?php
$handle = opendir ('./');
$img_array = array();
while (false !== ($file = readdir($handle))) {
$img_array[] = $file;
}
closedir($handle);
sort($img_array);
foreach($img_array as $img) {
echo '<img src="'.$img.'"/><br />'.$img.'<br />';
}
?>
:)

Само се чудех как да премахна точките . и .. защото с
strtolower(end(explode(".",$file)));

Нещо не ми се получава.


Едит: sizif трябваше ми нещо по кратичко и елементарно. Все пак ти благодаря :)
 

Back
Горе