Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Вывод картинок из папки на PHP... подскажите плиз

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
Владимир_С
Гость





СообщениеДобавлено: Пт Дек 17 2004 11:33    Заголовок сообщения: Вывод картинок из папки на PHP... подскажите плиз Ответить с цитатой

Здравствуйте. Подскажите как мне сделать вывод картинок из папки на PHP. Есть папка img, в ней хранятся картинки... как мне вывести все картинки из этой папки в браузер?
Заранее спасибо.
Вернуться к началу
kurt



Зарегистрирован: 16.02.2004
Сообщения: 20
Откуда: Гомель, Беларусь

СообщениеДобавлено: Пт Дек 17 2004 12:32    Заголовок сообщения: Ответить с цитатой

Код:
<?php
if ($handle = opendir('/path/to/files')) {
    echo "Directory handle: $handle\n";
    echo "Files:\n";

    /* Это корректный способ цикла по директории. */
    while (false !== ($file = readdir($handle))) {
        echo "$file\n";
    }

    /* Это НЕПРАВИЛЬНЫЙ способ цикла по директории. */
    while ($file = readdir($handle)) {
        echo "$file\n";
    }

    closedir($handle);
}
?>

Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Владимир_С
Гость





СообщениеДобавлено: Пт Дек 17 2004 15:19    Заголовок сообщения: Но это не работает! ((( Ответить с цитатой

Это не работает. Выводит только квадратики с крестиками и все.
Вернуться к началу
kurt



Зарегистрирован: 16.02.2004
Сообщения: 20
Откуда: Гомель, Беларусь

СообщениеДобавлено: Пт Дек 17 2004 18:49    Заголовок сообщения: Ответить с цитатой

Код:
<?
if ($handle = opendir('.')) {
    while (false !== ($file = readdir($handle))) {
        if ($file != "." && $file != "..") {
            $ff.="$file"."|";
        }
    }
    closedir($handle);
 }
     $f=explode ("|",$ff);
     $fa=array_pop($f);
     $c=count($f);
     for ($i=0;$i<$c;$i++)
           {
               $f_r=explode(".",$f[$i]);
               if (($f_r[1]=="jpg") or ($f_r[1]=="gif"))
     {
                echo "<br><img src=\"$f[$i]\">";
     }
           }
?>


Размести файл с этим кодом в папке с картинками.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Владимир С.
Гость





СообщениеДобавлено: Пн Дек 20 2004 10:33    Заголовок сообщения: опять не работает... Ответить с цитатой

Если здесь "if ($handle = opendir('.'))" виесто корневой папки написать какую то другую, например /images/ то скрипт все равно ничего не выводит. Подскажите плиз почему...
Вернуться к началу
Croak



Зарегистрирован: 26.11.2004
Сообщения: 8

СообщениеДобавлено: Пн Дек 20 2004 17:39    Заголовок сообщения: Ответить с цитатой

if ($handle = opendir('/path/to/files')) {

/* Это корректный способ цикла по директории. */
while (false !== ($file = readdir($handle))) {
if ($file!="."&&$file!="..") echo "<IMG SRC='"."http/path/to/folder"."/".$file."'>";
}

closedir($handle);
}
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Владимир С.
Гость





СообщениеДобавлено: Ср Дек 22 2004 18:54    Заголовок сообщения: Ответить с цитатой

Интересно а что вставлять вместо /path/to/files ? Если я ставлю вот такие путь ./pics - ничего не работает. А вот сюда /path/to/folder писать путь к папке? Извините, но я никак не сооброжу.
У меня папка генериться автоматом и мне надо что б здесь /path/to/files имя папки писалось автоматом - например имя папки находится в переменной $folder , то мне нужно просто вставить $folder или /path/to/$folder. Вот как это сделать?
Вернуться к началу
Croak



Зарегистрирован: 26.11.2004
Сообщения: 8

СообщениеДобавлено: Чт Дек 23 2004 17:52    Заголовок сообщения: Ответить с цитатой

path/to/files/ - путь к папке, в которой лежат файлы изображений
что вписать - ??? что-нибудь типа
Код:
$_SERVER['DOCUMENT_ROOT']."/pics"
- зависит от того, где лежит папка...

http/path/to/folder - путь к той же папке, но по протоколу http
что вписать - что-нибудь типа
Код:
"http://".$_SERVER['SERVER_NAME']."/pics"
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Наибольший



Зарегистрирован: 28.12.2004
Сообщения: 4

СообщениеДобавлено: Ср Дек 29 2004 01:40    Заголовок сообщения: . Ответить с цитатой

kurt писал(а):
Код:


    /* Это корректный способ цикла по директории. */
    while (false !== ($file = readdir($handle))) {
        echo "$file\n";
    }

    /* Это НЕПРАВИЛЬНЫЙ способ цикла по директории. */
    while ($file = readdir($handle)) {
        echo "$file\n";
    }



Почему второй способ некорректен?

В принципе понятно, что первый более "правильный", но для PHP и второй более чем реальный, или я не врубаюсь?

readdir() возвращает имя следующего элемента в каталоге в строковом типе, или FALSE при достижении конца списка. Первый способ использует жесткую проверку без приведения типов. Теоретически такая проверка быстрее, но на практике это сценарий не ускорит. При приведении типов во втором случае цикл останавливается в случае получения:
1) FALSE
2) NULL
3) '' (EMPTY STRING)
4) 0 (INT)
5) 0.00 (FLOAT)
Первые два варианта отпадают сразу, это очевидно, 3) - имя файла или каталога не может быть пустой строкой, а 4) и 5) при приведении из строкового типа в булевый примут значение TRUE. (Естественно, при приведении из числового типа в булевый они бы приняли FALSE, но это не наш случай)

2Владимир_С:
Код:

$folder=$_SERVER['DOCUMENT_ROOT'].'/folder/';
.....
.....
$imgsFolder=$folder.'imgs/';
// echo $imgsFolder;
// for example: /var/www/mysite/www/folder/imgs/
$imgs='';
if(@$handler=opendir($imgsFolder)){
   while($item=readdir($handler)){
      $fullName=$imgsFolder.$item;
      if(is_file($fullName) /* and проверка_типа_файла_preg_match() */){
        $imgs.="<img src=/".str_replace($_SERVER['DOCUMENT_ROOT'], '', $fullName).">\n";
      }
   }
   closedir($handler);
   echo $imgs;
}else echo "Cat`t open $imgsFolder for read";

"http://$_SERVER['SERVER_NAME']/" в src писать совершенно не обязательно.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...