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

Форум PHP

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

 

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

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

тема: Функция для копирования директории с сохранением ее иерархии
 
 автор: Blaster   (15.06.2008 в 12:56)   письмо автору
 
 

Такая проблема.
Вот, уже третий день мучаюсь над написанием такой функции.
Функция copy() может копировать только файлы, но мне нужно копировать каталог. В PHP такой функции я не нашел(может быть плохо искал). Пытался сам написать свою функцию, но возникли проблемы...
Может кто-то раньше делал что-то подобное? Или может готовая есть...
Помогите, пожалуйста.
Спасибо.

   
 
 автор: Blaster   (15.06.2008 в 14:21)   письмо автору
 
   для: Blaster   (15.06.2008 в 12:56)
 

Да... никто мне помогать не хочет)
Но уже и не надо. Сам написал функцию.
Кому интересно, вот код:

<?php
# Функция копирует все папки и файлы из каталога $from в каталог $to
function copydir($from,$to)
{
    if(
is_file($from))
    {
        if(!
copy($from,"$to/".basename($from)))
        {
            echo 
"Ошибка копирования из $from/ в $to/".basename($from)."<br>\n";
        }
        else
        {
            echo 
"Успешно скопирован $from/ в $to/".basename($from)."<br>\n";
        }
    }
    else if(
is_dir($from))
    {
        
$dir opendir($from);
        while((
$file readdir($dir)))
        {
            if(
$file!="." && $file!="..")
            {
                if(!
file_exists($to))
                {
                    echo 
"$to не существует.<br>\n";
                    if(!
mkdir("$to"))
                        echo 
"<b>Ошибка</b> создания каталога $to.<br>\n";
                    else
                        echo 
"Создаем каталог $to.<br>\n";
                }
                else
                    echo 
"$to существует.<br>\n";

                if(
is_file("$from/$file"))
                {
                    echo 
"$from/$file - файл.<br>\n";
                    if(!
copy("$from/$file","$to/".basename("$from/$file")))
                    {
                        echo 
"<b>Ошибка</b> копирования из $from/$file в $to/".basename("$from/$file")."<br>\n";
                    }
                    else
                    {
                        echo 
"Копируем $from/$file в $to/".basename("$from/$file")."<br>\n";
                    }

                }
                else if(
is_dir("$from/$file"))
                {
                    echo 
"$from/$file - каталог<br>\n";
                    
copydir("$from/$file","$to/$file");
                }
            }
        }
        
closedir($dir);
    }
}

   
Rambler's Top100
вверх

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