Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.08.2010, 19:34   #1
dimonnnn
Пользователь
 
Регистрация: 07.08.2010
Сообщений: 29
По умолчанию вывод изображений

Имеется папка. В ней N картинок. Имена каждой из картинок мы не знаем. Надо их все загрузить на сайт, прич1м упорядочены они должны быть по имени. как это сделать?
если картинки имеют имена (по порядку : 1.jpg, 2.jpg...) это сделать не трудно. а вот как быть когда их имена мы не знаем?
dimonnnn вне форума Ответить с цитированием
Старый 13.08.2010, 20:01   #2
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Примерно так:
PHP код:
$files_names = array();
$dirdesc opendir('directory_name');// имя вашей директориии с картинками
while($file readdir($dirdesc)){
    if((
$file != '.') && ($file != '..') && (is_file($file))){
        
$files_names[] = $file// массив с именами файлов в директории
    

}
closedir($dirdesc);

if(!empty(
$files_names)){
    
sort($files_names); // отсортировали массив по значениям
    
    // ...далее код вывода изображений...

Теперь имена всех файлов в вашей директории находятся в массиве $files_names(отсортированные по именам по возрастанию(a-z)) , который вы далее используете для вывода изображений.
Andkorol вне форума Ответить с цитированием
Старый 14.08.2010, 01:18   #3
dimonnnn
Пользователь
 
Регистрация: 07.08.2010
Сообщений: 29
Восклицание

у меня проблема возникла...
у меня адрес странички http://localhost/user/293 был преобразован из адреса http://localhost/user.php?id=293 с помощью mod_rewrite.
Так вот. страница user.php надохидся в корневой папке.
пишу я
Код:
               $pathToSmallPhoto = "photos/$id/small/*.jpg";
                $imageArray = glob($pathToSmallPhoto);
                print_r($imageArray);
                $i = 1;//переменная для цикла
                while($i <= $allPhotos)
                {       
                        //если $i делится на 5, то новая строка
                        if (($i % 5) == 0)
                                echo "<tr>";
                        echo "<td><img src=\"$imageArray[$i]\"></td>";
                        //если $i делится на 4, конец строки
                        if (($i % 4) == 0)
                                echo "<td><img src=\"$imageArray[$i]\"></td></tr>";     
                                $i++;
                }
                echo "</table>";
а фотографии не отображаются и когда я кликаю по адресу фотки, показывает http://localhost/user/photos/293/small/Main.jpg (это пример конкретной фотки. на самом деле она находится по адресу http://localhost/photos/293/small/Main.jpg
но print_r() вот это показал:
Array ( [0] => photos/293/small/1.jpg [1] => photos/293/small/2.jpg [2] => photos/293/small/3.jpg [3] => photos/293/small/Main.jpg )
а если в пути написать $pathToSmallPhoto = "../photos/$id/small/*.jpg";
то вообще print_r ничё не покажет - пустой массив.
http://localhost/user/ - адрес фотки (любой)
в чём косяк?

папка photos лежит тоже в корне
photos тоже в корне. но почему-то в адресе фотографии у меня хз откуда берётся user. и этого у не могу понять. почему когда я пишу:"photos/$id/small/*.jpg"; адрес такой http://localhost/user/photos/293/small/Main.jpg (это пример конкретной фотки. на самом деле она находится по адресу http://localhost/photos/293/small/Main.jpg, а когда я пишу "../photos/$id/small/*.jpg" ещё хуже с адресом http://localhost/user/
а так как photos и user.php лежат в корне то эти оба адреса должны быть эквивалентны. но ни один не работает.
так что за фигня с адресами? может с этим связано:
RewriteEngine On
RewriteRule ^user/([^/\.]+)/?$ user.php?id=$1 [L]
dimonnnn вне форума Ответить с цитированием
Старый 14.08.2010, 10:42   #4
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Ничё толком не понял из сумбурного текста - но попробуйте указывать в src абсолютный путь к картинке.
Вот примерно так(заодно сократите свой вывод):
PHP код:
while($i <= $allPhotos)
    {       
         
//если $i делится на 5, то новая строка
         
if (($i 5) == 0){
             echo 
'</tr><tr>';// сразу и закрываем старую - и открываем новую
         
}
         echo 
'<td><img src="http://localhost/' $imageArray[$i] . '" /></td>';
         
$i++;
    }
echo 
'</tr></table>'

Последний раз редактировалось Andkorol; 14.08.2010 в 10:46.
Andkorol вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод изображений *.jpg в Image(Delphi) ChEaTeR-abc Помощь студентам 3 06.04.2011 12:45
Вывод изображений из списка ListBox ChEaTeR-abc Помощь студентам 6 13.07.2010 16:55
Вывод изображений с задержкой. hk47 Компоненты Delphi 11 28.04.2010 09:27
Вывод изображений из базы данных Princesse PHP 5 12.01.2010 10:09
delphi вывод 3д изображений ben95 Помощь студентам 1 29.03.2008 13:22