Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Чтение вложенного каталога
 
 автор: vov4ik   (15.01.2007 в 11:38)   письмо автору
 
 

Необходимо открыть каталог, вывести список файлов и каталогов в нем, если есть каталоги,
открыть и вывести список файлов в них. Вот этот скрипт выводит список каталогов и файлов,
расположенных выше директории. Как его изменить, помогите плз...

<?php
require_once('msg.php');
$dir=opendir('../photogallery/files/');
while(
$direct=readdir($dir))
{
echo 
$direct.'<br>';

if(
is_dir($direct."/"))
{
$open=opendir($direct."/");
while(
$files=readdir($open))
{
echo 
$files.'<br>';
}
}

}
?>

   
 
 автор: Poison   (15.01.2007 в 11:51)   письмо автору
 
   для: vov4ik   (15.01.2007 в 11:38)
 

Давно еще писал скрипт для работы с файлами=)))

function replace($dir, $search, $replace, $expansion = false, $name = false, $full = true, $closedir = false) {
    @set_time_limit(0);
    $dir = (($dir == "." || $dir == "" || empty($dir)) ? $_SERVER['DOCUMENT_ROOT'] : trim($dir));
    $search = trim($search);
    $replace = trim($replace);
    $expansion = trim(str_replace(",", "|", $expansion));
    $name = trim(str_replace(",", "|", $name));
    $full = trim($full);
    @preg_match("/([^\/\\\]+)[\/\\\].[^\/\\\]+$/i", __FILE__, $dir_self);
    $closedir = ((empty($closedir)) ? $dir_self[1] : trim(str_replace(",", "|", $closedir)."|".$dir_self[1]));
    $pattern_dir = "/".(($closedir) ? "^(".$closedir.")+$" : "^.+$")."/i";
    $pattern_file = "/".(($name) ? "^".((!$full) ? ".*" : "")."(".($name).")+".((!$full) ? ".*" : "") : "").(($expansion) ? "\.(".($expansion).")+$" : (($name) ? "(\..+).$" : "^.+$"))."/i";
    if ($handle = @opendir($dir)) {
        while (($file = readdir($handle)) !== false) { 
            if ($file != "." && $file != "..") {
                if (is_file($dir."/".$file) && !is_dir($dir."/".$file)) {
                    if (preg_match($pattern_file, $file)) {
                        echo "<li style='font-family:Verdana;font-size:11px;text-align:left;color:#55555;list-style-type:decimal;background-color:#ebebeb;padding:1 1 1 5'>Файл: <u>".$file."</u> Размещение: <u>".$dir."/".$file."</u> </li>";
                        //-------------------------------------------------------------\\
                        /*
                        $content = file_get_contents($dir."/".$file);
                        $content = str_ireplace($search, $replace, $content);
                        file_put_contents($dir."/".$file, $content);
                        */
                        //rename($dir."/".$file,$dir."/fff");
                        //-------------------------------------------------------------\\
                    }
                } else {
                    if (is_dir($dir."/".$file) && !is_file($dir."/".$file) && !preg_match($pattern_dir, $file)) {
                        (replace($dir."/".$file, $search, $replace, $expansion, $name, $full, $closedir));
                    }
                }
            }
        }
        @closedir($dir);
    } else {
        echo ("<div style='font-family:Verdana;font-size:13px;text-align:center;color:#ff3333;'>Директория <b>".$dir."</b> не найдена!</div>");
        return false;
    }
}

replace($dir = "", $search = "", $replace = "", $expansion = "", $name = "", $full = true, $closedir = "");

   
 
 автор: Sergey89   (15.01.2007 в 13:08)   письмо автору
 
   для: vov4ik   (15.01.2007 в 11:38)
 

Рекурсию надо использовать.

   
 
 автор: cheops   (15.01.2007 в 13:34)   письмо автору
 
   для: vov4ik   (15.01.2007 в 11:38)
 

Здесь потребуется рекурсивный спуск, примеры которого вы сможете найти по ссылкам
http://www.softtime.ru/scripts/ftpscaner.php
http://www.softtime.ru/scripts/reverse.php
http://www.softtime.ru/scripts/reverse.php

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования