X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Как скопировать каталог?
Bartle96
Bartle96
Topic Starter сообщение 11.12.2011, 13:55; Ответить: Bartle96
Сообщение #1


Подскажите каким образом скопировать в PHP целый каталог
(со всеми вложенными подкаталогами и файлами).
И чтобы можно было дать название папки куда надо скопировать файлы
Заранее спасибо...
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Apay
Apay
сообщение 11.12.2011, 20:06; Ответить: Apay
Сообщение #2


написать рекурсивную функцию, которая копирует файлв в каталоге, при встрече подкаталогов рекурсивно вызывает себя.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
mamchyts
mamchyts
сообщение 12.12.2011, 0:29; Ответить: mamchyts
Сообщение #3


[PHP]exec("cp /path/from /path/to -R")[/PHP]
вроде так.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Apay
Apay
сообщение 12.12.2011, 2:05; Ответить: Apay
Сообщение #4


увы, всякие exec и прочая асто блокированны по соображениям безопастности
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
mamchyts
mamchyts
сообщение 12.12.2011, 8:40; Ответить: mamchyts
Сообщение #5


тогда нужна рекурсивная функция типа
[PHP]function cp($from, $to){
if(!is_dir($to)){
mkdir($to);
chmod($to, '777');
}
$dh = opendir($from)) {
while (($file = readdir($dh)) !== false) {
$file = '/'.$file;
if(is_dir($from.$file))
cp($from.$file, $to.file);
else
copy($from.$file, $to.file);
}
closedir($dh);
}[/PHP]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Apay
Apay
сообщение 12.12.2011, 12:40; Ответить: Apay
Сообщение #6


(mamchyts @ 12.12.2011, 11:40) *
тогда нужна рекурсивная функция
а я про что :)
(Apay @ 11.12.2011, 23:06) *
написать рекурсивную функцию, которая копирует файлв в каталоге, при встрече подкаталогов рекурсивно вызывает себя.


кстати, у вас ошибочка, надо в цикле проверять каталоги на '.' и '..'

и на будущее: код пожалуйста выделяйте, удобнее читать
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Morgan13
Morgan13
сообщение 5.9.2014, 21:30; Ответить: Morgan13
Сообщение #7


[PHP]function cdir($dir, $path) {
if((is_file($path)) or (is_file($dir))) {
print("FATAL! First or second argument in cdir() function cannot be a file!");
sleep(5);
die;
}
if((!file_exists($path)) or (!file_exists($dir))) {
print("FATAL! Directory does not exist!");
sleep(5);
die;
}
foreach(scandir($dir) as $data) {
if(($data != ".") && ($data != "..")) {
if(is_dir($dir . "/" . $data)) {
if(!file_exists($path . "/" . $data)) {
mkdir($path . "/" . $data);
}
cdir($dir . "/" . $data, $path . "/" . $data);
}
else
{
copy($dir . "/" . $data, $path . "/" . $data);
}
}
}
}[/PHP]

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Большие ставки для кликов в Я.Директ. Как удешевить?
2 rownong27 1125 26.3.2024, 14:13
автор: knezevolk
Открытая тема (нет новых ответов) Как вы бросили работу и перешли на заработок с сайтов?
12 uahomka 2300 25.3.2024, 6:52
автор: Skyworker
Открытая тема (нет новых ответов) Как отозвать банковский платеж фрилансеру?
28 metvekot 3922 25.3.2024, 6:34
автор: Skyworker
Открытая тема (нет новых ответов) Как вывести деньги в Украине с заблокированного Юмани ?
23 freeax 3653 24.3.2024, 20:55
автор: Liudmila
Открытая тема (нет новых ответов) Через какой браузер и как можно найти в кэшэ браузера видео
10 Room 1947 23.3.2024, 7:41
автор: Room


 



RSS Текстовая версия Сейчас: 29.3.2024, 18:59
Дизайн