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

Форум PHP

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

 

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

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

тема: Копирование директории со всеми вложенными файлами
 
 автор: m@rchello   (24.05.2008 в 12:19)   письмо автору
 
 

доброго времени суток

подскажите как скопировать директорию со всеми вложеными файлами и директориями???

   
 
 автор: FireTiger   (24.05.2008 в 16:44)   письмо автору
 
   для: m@rchello   (24.05.2008 в 12:19)
 

Я так понял, что это нужно сделать средствами PHP ))
Вот есть такая функция, написана не мною, но выложена на свободное скачивание и использование:

copy_u($src,$dest) - копирует папку или файл $src в указанное место $dest. Заметьте, что, естественно, в качестве $dest нужно указывать не папку, в которую нужно скопировать $src, а папку, которая должна в результате этого получиться. То же самое касается и файлов.

<?php 
function copy_u($src,$dest)
{
        if(!
file_exists($src)) return false;
        if(
is_file($src)) return copy($src,$dest);
        
        
$src=realpath($src).'/';
        
$dest=realpath($dest).'/';
        if(
substr($dest,0,strlen($src))==$src) return false;
        
        
$error=false;
        
        if(!
mkdir($dest,0777)) $error=true;
        
        
$dh=opendir($src);
        while(
false!==($f=readdir($dh)))
        {
                if(
$f=='.' || $f=='..') continue;
                if(!
copy_u($src.'/'.$f,$dest.'/'.$f)) $error=true;
        }
        
closedir($dh);
        
        return !
$error;
}
?>


Используйте)

   
 
 автор: FireTiger   (24.05.2008 в 16:47)   письмо автору
 
   для: FireTiger   (24.05.2008 в 16:44)
 

Вот может вам еще понадобится функция удаления папки со всеми вложенными файлами и директориями:
remove_u($dir) - удаляет файл или папку $dir (папка может и не быть пустой). Постфикс «_u» у функций обозначает «universal» - универсальный, не зависящий от того, папка это или файл, работающий всегда.

<?php
function remove_u($dir)
{
        if(
is_file($dir)) return unlink($dir);
        
        
$dh=opendir($dir);
        while(
false!==($file=readdir($dh)))
        {
                if(
$file=='.'||$file=='..') continue;
                
remove_u($dir."/".$file);
        }
        
closedir($dh);
        
        return 
rmdir($dir);
}
?>

   
 
 автор: m@rchello   (24.05.2008 в 17:36)   письмо автору
 
   для: FireTiger   (24.05.2008 в 16:47)
 

спасибо!

   
Rambler's Top100
вверх

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