我有一个名为“ mysourcedir”的目录,它具有音素文件和文件夹.所以我想使用PHP将所有内容从此目录复制到Linux服务器上的其他“目标文件夹”中.
function full_copy( $source, $target ) {
if ( is_dir( $source ) ) {
@mkdir( $target );
$d = dir( $source );
while ( FALSE !== ( $entry = $d->read() ) ) {
if ( $entry == '.' || $entry == '..' ) {
continue;
}
$Entry = $source . '/' . $entry;
if ( is_dir( $Entry ) ) {
$this->full_copy( $Entry, $target . '/' . $entry );
continue;
}
copy( $Entry, $target . '/' . $entry );
}
$d->close();
}else {
copy( $source, $target );
}
}
我正在尝试此代码,但确实存在一些问题,它在目标位置创建目录“ mysourcedir”.我希望仅将所有文件和文件夹复制到目标位置.请建议
解决方法:
class FolderCopy {
public static function copyFolder($src, $dest) {
$path = realpath($src);
$objects = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path), RecursiveIteratorIterator::SELF_FIRST);
foreach($objects as $name => $object)
{
$startsAt = substr(dirname($name), strlen($src));
self::mkDir($dest.$startsAt);
if(is_writable($dest.$startsAt) and $object->isFile())
{
copy((string)$name, $dest.$startsAt.DIRECTORY_SEPARATOR.basename($name));
}
}
}
private static function mkDir($folder, $perm=0777) {
if(!is_dir($folder)) {
mkdir($folder, $perm);
}
}
}
FolderCopy :: copyFolder(dirname(dirname(FILE)).“ / images”,dirname(FILE).“ / test”);
这是我的建议.
标签:linux,php
来源: https://codeday.me/bug/20191210/2101923.html