2014-01-27 4 views
0

Меня зовут Габриэль, и очень давно у меня возникла эта проблема. Я создал сайт, вы можете загрузить изображение в каталог на сервере, а затем изображения будут отображаться на сайте. Каждое изображение получает свое имя от количества изображений в папке, поэтому первое изображение называется «0» и, например, 137 получает «137» в качестве имени.Как сделать все изображения отображаемыми в том же порядке?

Я также сделал так, что последнее изображение отображается сначала, используя «array_reverse()». Вот фрагмент кода, используя для загрузки изображения:

<?php 
    error_reporting(0); 

    $files = glob("images/*.*"); 
    $files = array_reverse($files); 

     for ($i=0; $i<count($files); $i++) 
     { 
     $image = $files[$i]; 
     echo '<img src="'.$image.'" width="400px" height="300px">'; 
     } 
    ?> 

К моей проблеме. Порядок, чтобы последние изображения отображались вверху, а самый старый внизу работает для первых 10 изображений (помните, что первое изображение называется 0). И затем 11: th и вверх отображаются в другом месте.

Как это сделать, чтобы изменить это? Большой для любого ответа.

+0

Вы используете лексикографическую сортировку. Как строка, «11» предшествует «2». Вы * можете * добавлять имена файлов с символами «0», но я думаю, что более надежным решением было бы отслеживать метаданные файлов в базе данных. Каждый файл будет соответствовать записи в таблице, которая будет включать в себя путь для этого файла. Сортировка результатов из базы данных гораздо более строго типизирована и позволяет сортировать любое количество данных, которые вы собираете. – David

+0

Хорошо, я проверю это, спасибо! –

+0

Вы имеете в виду это? $ finalName = "0". $ existingFiles. ".". $ imageExt; –

ответ

0

Вам необходимо отсортировать массив $files. Sorting Arrays

sort($files); 
+0

Я тоже испытаю это, спасибо! –

Смежные вопросы