1. Задавайте здесь вопросы о коде, которые не подходят в другие разделы, такие как:
    Дизайн > Верстка
    PHP > Как сделать на PHP
    Скрыть объявление

opendir

Тема в разделе "Web Coding", создана пользователем xadd, 1 дек 2007.

Статус темы:
Закрыта.
Модераторы: latteo
  1. xadd

    xadd Прохожие

    Здравствуйте.

    Считываю картинки из папки.
    Из текущей папки всё работает:

    PHP:
    <?
    $xml '<?xml version="1.0"?'.'>';
    $handle opendir(".");
    while ( (
    $file=readdir($handle)) !== false ) {
        if ( !
    is_dir($file) ){
            
    $pic = @getimagesize($file);
            if(
    $pic != false && $pic[2] == 2){
                
    $xml .= '<img src="'.$file.'" width="'.$pic[0].'" height="'.$pic[1].'" />';
            }
        }
    }
    echo 
    $xml;
    ?>
    что нужно поменять в
    PHP:
    $handle opendir(".");
    чтобы работать со вложенной папкой?
     
  2. RomAndry

    RomAndry Постоялец

    Регистр.:
    21 ноя 2007
    Сообщения:
    102
    Симпатии:
    24
    http://www.php.net/opendir
    я думаю коментраии излишни там все расписано и в примерах и коментариях ты найдешь ответ, а за одно интересные мысли, к примеру нет смысла применять ко всем файлам а так же к . и к .. функцию getimagesize()
    а значит и знак @ отпадет сам собой =)

    Удачи.
     
  3. admLoki

    admLoki генератор случайного PHP

    Регистр.:
    14 сен 2006
    Сообщения:
    481
    Симпатии:
    93
    PHP:
    ...
    $handle opendir("./$имя_подпапки/");
    ...
     
  4. bueno

    bueno Читатель

    Заблокирован
    Регистр.:
    7 май 2007
    Сообщения:
    236
    Симпатии:
    69
    не совсем.. нужно сделать рекурсивную функцию по принципу:
    is_dir($file) - на рекурсию
    иначе - читаем содержимое
     
  5. admLoki

    admLoki генератор случайного PHP

    Регистр.:
    14 сен 2006
    Сообщения:
    481
    Симпатии:
    93
    Я дал конкретный ответ на конкретный вопрос .
    Я не обязан все расписывать. Спросят - отвечу.
     
  6. vizard-06

    vizard-06 Создатель

    Регистр.:
    9 фев 2007
    Сообщения:
    11
    Симпатии:
    2
    PHP:
    <?
    function 
    ReadDirectory($dir$offs) {
        if (
    $d=opendir($dir)) {
            while (
    $file=readdir($d)) {
                if ((
    $file=='.') or ($file=='..')) {
                    continue;
                }
                if (
    is_dir($dir."/".$file)) {
                print(
    "<BR>$offs <B>$dir/$file</B>");
                    
    ReadDirectory($dir."/".$file$offs."-");
                }
                else {
                    print(
    "<BR> $offs $dir/$file") ;
                }
            }
        }
        
    closedir($d);
    }
    echo 
    ReadDirectory ("."$offs="");
    ?>
    функция считает всё файлы во всех директориях, указаной папки!
     
    spamassist нравится это.
  7. skn78

    skn78 Создатель

    Регистр.:
    14 апр 2007
    Сообщения:
    21
    Симпатии:
    0
    $_foo ='.';

    $xml = '<?xml version="1.0"?'.'>';

    function s_glob($dir){
    $files = array();
    if(is_dir($dir)){
    if($dh=opendir($dir)){
    while(($file = readdir($dh)) !== false){
    $files[]=$dir.$file;
    }}
    }
    return $files;
    }
    foreach ($files as $val)
    {
    $pic = @getimagesize($file);
    if($pic != false && $pic[2] == 2)
    {
    $xml .= '<img src="'.$file.'"width="'.$pic[0].'"height="'.$pic[1].'" />';
    }
    }
    echo $xml;

    /*
    Автор идет читать правила раздела. После приходит и меняет оформление php-кода в соответсвие с правилами. Если не меняет - идет в баню еще на неделю. И так далее. по рекурсии.
    Jeurey

    */
     
Статус темы:
Закрыта.