天天看点

php 跳到另一个文件夹,将所有文件和文件夹从一个目录复制到另一目录PHP

我有一个名为“ 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