[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: КАК СКОПИРОВАТЬ НЕСКОЛЬКО ФАЙЛОВ
vsbn
Здравствуйте, этот скрипт позволяет копировать файлы из одной папки в другую. Мне желательно для него написать функцию, например, fcopy() и поместить ее в библиотеку функций для ее вызова при необходимости. Но для этого нужно убрать из скрипта условие:
if($file != '.' && $file != '..')
Пробовал от него избавится и заменить его строками:
$file != '.'; && $file != '..';
но это абсурдно, поэтому и появляется сообщение об ошибке о неверном аргументе в функции copy.
Может кто-нибудь из профессионалов подскажет, что нужно сделать, или предложит альтернативный вариант.

$srcdir="old"; // Каталог с исходными файлами
$dstdir="new"; // Конечный каталог
// Открыть исходный каталог

$curdir = opendir($srcdir);
// Последовательно считывать все
// имена файлов и каталогов

while($file = readdir($curdir)) {
// Пропустить указатель на текущий и
// предыдущий каталоги

if($file != '.' && $file != '..') {
$srcfile = $srcdir . '/' . $file;
$dstfile = $dstdir . '/' . $file;
// Скопировать файл
copy ($srcfile, $dstfile);
}
}

// закрыть ранее открытый каталог
closedir($curdir);
AllesKlar
Цитата
Но для этого нужно убрать из скрипта условие:
if($file != '.' && $file != '..')

Зачем?

function fcopy($srcdir, $dstdir)
{
// Открыть исходный каталог
$curdir = opendir($srcdir);
// Последовательно считывать все
// имена файлов и каталогов

while($file = readdir($curdir))
{
// Пропустить указатель на текущий и
// предыдущий каталоги

if($file != '.' && $file != '..')
{
$srcfile = $srcdir . '/' . $file;
$dstfile = $dstdir . '/' . $file;
// Скопировать файл
copy ($srcfile, $dstfile);
}
}

// закрыть ранее открытый каталог
closedir($curdir);
}


_____________
[продано копирайтерам]
mvg
Цитата (vsbn @ 18.01.2015 - 01:12)
Но для этого нужно убрать из скрипта условие:
if($file != '.' && $file != '..')
Пробовал от него избавится и заменить его строками:
$file != '.'; && $file != '..';
но это абсурдно, поэтому и появляется сообщение об ошибке о неверном аргументе в функции copy.

Попробуйте избавиться с помощью функции is_file
bool is_file ( string $filename )


Верю, у вас все получиться!
FatCat
$srcdir="old"; // Каталог с исходными файлами
$dstdir="new"; // Конечный каталог
$filez = glob($srcdir.'/*.*');
foreach($filez as $srcfile)
{
$dstfile = str_replace($srcdir, $dstdir, $srcfile);
copy ($srcfile, $dstfile);
}


_____________
Бесплатному сыру в дырки не заглядывают...
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.