Map + submappen + subbestanden kopieren

Overzicht Reageren

Ricar do

Ricar do

11/08/2009 19:44:00
Quote
Hallo,

Weet iemand een scriptje (of functie maar bestaat niet volgens mij) wat een map + alle submappen + alle (sub) bestanden kopieert naar een andere map op de server?

Bvd,
Ricardo
 
PHP hulp

PHP hulp

03/09/2010 01:25:35
Gesponsorde koppelingen:
 
Matthias

Matthias

11/08/2009 20:20:00
Quote
ftp?
 
Ricar do

Ricar do

11/08/2009 21:00:00
Quote
Het moet automatisch als backup gedaan worden :)
 
Matthias

Matthias

11/08/2009 21:03:00
Quote
Misschien werkt deze:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
ctrlc('htdocs');
ctrlv('./../','htdocs');
Gewijzigd op 01/01/1970 01:00:00 door Matthias
 
Ricar do

Ricar do

12/08/2009 06:48:00
Quote
grapjas...
 
Matthias

Matthias

12/08/2009 07:49:00
Quote
Heb enkele citaten van PHP.net gehaald..
http://us3.php.net/manual/en/function.copy.php


citaat van php.net:

Thanks for all the comments, i wrote this function for fully supporting file and directory copy.
As you may have noticed there are feature that didn't have time to implement , but if you have time to implement them or even add more cool features, please notify me as well :). you can find me here http://sina.salek.ws/en/contact

PS : It was very useful for me, hope you find it useful as well.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
<?php
    /**
     * Copy file or folder from source to destination, it can do
     * recursive copy as well and is very smart
     * It recursively creates the dest file or directory path if there weren't exists
     * Situtaions :
     * - Src:/home/test/file.txt ,Dst:/home/test/b ,Result:/home/test/b -> If source was file copy file.txt name with b as name to destination
     * - Src:/home/test/file.txt ,Dst:/home/test/b/ ,Result:/home/test/b/file.txt -> If source was file Creates b directory if does not exsits and copy file.txt into it
     * - Src:/home/test ,Dst:/home/ ,Result:/home/test/** -> If source was directory copy test directory and all of its content into dest      
     * - Src:/home/test/ ,Dst:/home/ ,Result:/home/**-> if source was direcotry copy its content to dest
     * - Src:/home/test ,Dst:/home/test2 ,Result:/home/test2/** -> if source was directoy copy it and its content to dest with test2 as name
     * - Src:/home/test/ ,Dst:/home/test2 ,Result:->/home/test2/** if source was directoy copy it and its content to dest with test2 as name
     * @todo
     *     - Should have rollback technique so it can undo the copy when it wasn't successful
     *  - Auto destination technique should be possible to turn off
     *  - Supporting callback function
     *  - May prevent some issues on shared enviroments : http://us3.php.net/umask
     * @param $source //file or folder
     * @param $dest ///file or folder
     * @param $options //folderPermission,filePermission
     * @return boolean
     */

    function smartCopy($source, $dest, $options=array('folderPermission'=>0755,'filePermission'=>0755))
    {

        $result=false;
        
        if (is_file($source)) {
            if ($dest[strlen($dest)-1]=='/') {
                if (!file_exists($dest)) {
                    cmfcDirectory::makeAll($dest,$options['folderPermission'],true);
                }

                $__dest=$dest."/".basename($source);
            }
else {
                $__dest=$dest;
            }

            $result=copy($source, $__dest);
            chmod($__dest,$options['filePermission']);
            
        }
elseif(is_dir($source)) {
            if ($dest[strlen($dest)-1]=='/') {
                if ($source[strlen($source)-1]=='/') {
                    //Copy only contents
                } else {
                    //Change parent itself and its contents
                    $dest=$dest.basename($source);
                    @
mkdir($dest);
                    chmod($dest,$options['filePermission']);
                }
            }
else {
                if ($source[strlen($source)-1]=='/') {
                    //Copy parent directory with new name and all its content
                    @mkdir($dest,$options['folderPermission']);
                    chmod($dest,$options['filePermission']);
                }
else {
                    //Copy parent directory with new name and all its content
                    @mkdir($dest,$options['folderPermission']);
                    chmod($dest,$options['filePermission']);
                }
            }


            $dirHandle=opendir($source);
            while($file=readdir($dirHandle))
            {

                if($file!="." && $file!="..")
                {

                     if(!is_dir($source."/".$file)) {
                        $__dest=$dest."/".$file;
                    }
else {
                        $__dest=$dest."/".$file;
                    }

                    //echo "$source/$file ||| $__dest<br />";
                    $result=smartCopy($source."/".$file, $__dest, $options);
                }
            }

            closedir($dirHandle);
            
        }
else {
            $result=false;
        }

        return $result;
    }

?>




citaat van php.net:
Here's a simple recursive function to copy entire directories

Note to do your own check to make sure the directory exists that you first call it on.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
function recurse_copy($src,$dst) {
    $dir = opendir($src);
    @
mkdir($dst);
    while(false !== ( $file = readdir($dir)) ) {
        if (( $file != '.' ) && ( $file != '..' )) {
            if ( is_dir($src . '/' . $file) ) {
                recurse_copy($src . '/' . $file,$dst . '/' . $file);
            }

            else {
                copy($src . '/' . $file,$dst . '/' . $file);
            }
        }
    }

    closedir($dir);
}

?>
 
Aaxklonp

Aaxklonp

12/08/2009 10:22:00
Quote
Kijk hier eens in het topic met dezelfde naam:
http://phphulp.nl/forum/showtopic.php?id=66406&cat=1

Het lukt trouwens nog steeds niet bij mij.
 



Overzicht Reageren