Versio

Mappen + bestanden + submappen kopiëren

Overzicht Reageren

Aaxklonp

Aaxklonp

08/08/2009 20:06:00
Quote Anchor link
Hey,
Ik ben al maanden op zoek naar een script waarmee ik alle mappen van phpBB3 kan kopiëren naar een andere plek.
Het volgende heb ik gevonden:
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
// * * phpBB 3.0.5
$source = 'C:/phpBB3 source';
$destination = 'C:/map/map/phpBB 3.0.5';

function copydir($source,$destination)
{
if(!is_dir($destination)){
$oldumask = umask(0);
mkdir($destination, 01777);
umask($oldumask);
}
$dir_handle = @opendir($source) or die("Er is een fout opgetreden.");
while ($file = readdir($dir_handle))
{
if($file!="." && $file!=".." && !is_dir("$source/$file"))
copy("$source/$file","$destination/$file");
}
closedir($dir_handle);
}

Met dit scriptje kan ik slechts 1 map en inhoud tegelijk kopiëren. Als ik phpBB dus wil kopiëren dan moet ik voor elke submap van phpBB zo'n scriptje laten uitvoeren! Al met al wordt dat dus een heel groot script en is het heel veel werk, zeker als ik dit ook nog met Joomla etc wil doen.

http://www.phpclasses.org/browse/package/5525.html leek uitkomst te bieden en het lukt me ook om een map + bestanden + submappen te kopiëren. Hiervoor moet ik echter nog een url opgeven in de browser, wat ik al in het script wil zetten. Ik heb echt geen idee hoe ik dat moet doen, al van alles geprobeerd zoals bijvoorbeeld
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$dir = "C:/phpBB3 source" en $root_dir = "C:/map/map/phpBB 3.0.5"
in te voeren.

Op internet kom ik niet verder; ik heb overal gezocht. Ik hoop dat iemand mij kan helpen.

Alvast heel erg bedankt!

Mvg
Aaxklonp
Gewijzigd op 01/01/1970 01:00:00 door Aaxklonp
 
PHP hulp

PHP hulp

25/05/2012 08:48:47
Gesponsorde koppelingen:
BHosted Hosting al vanaf € 1,- per maand

Controleer nu gratis jouw domeinnaam:

  
 
Jan Koehoorn

Jan Koehoorn

08/08/2009 20:38:00
Quote Anchor link
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

08/08/2009 22:56:00
Quote Anchor link
http://nl.php.net/copy
Had ik inderdaad ook gevonden.
Het volgende werkt helaas niet:
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
<?php
$src
= "C:/phpBB3 source";
$dst = "C:/map/map/phpBB 3.0.5";
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);
}

?>
 
Jan Koehoorn

Jan Koehoorn

08/08/2009 23:00:00
Quote Anchor link
Werk je op een windows PC? Dan moet je backslashes gebruiken in plaats van slashes (ook binnen je functie aanpassen).
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
    $src
= 'C:\phpBB3 source';
?>
Gewijzigd op 01/01/1970 01:00:00 door Jan Koehoorn
 
Joren de Wit
Beheerder

Joren de Wit

08/08/2009 23:01:00
Quote Anchor link
In windows wordt de \ gebruikt als directory separator. Als je dit script op een windows machine uit wilt voeren, zul je de / dus moeten vervangen door \.

ps. Verstandiger is het nog om de / of \ te vervangen door de constante DIRECTORY_SEPARATOR, op die manier heb je ongeacht het besturingssysteem altijd de juiste te pakken...
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
 
Aaxklonp

Aaxklonp

08/08/2009 23:12:00
Quote Anchor link
Ok, bedankt. Ik ga zo uitzoeken wat een constante directory_separator is.
Ik krijg nu steeds parse errors, omdat ik niet weet waar ik nou ' moet gebruiken en waar ". Zo is het nu:
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
<?php
$src
= "C:/phpBB3 source";
$dst = "C:/map/map/phpBB 3.0.5";
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);
}

?>


EDIT: Ik zie dat de \ tussen een aantal aanhalingstekens niet worden weergegeven. Waarschijnlijk door hetzelfde probleem.
Wanneer ik een gewone slash (/) doe is het prima..
Gewijzigd op 01/01/1970 01:00:00 door Aaxklonp
 
Aaxklonp

Aaxklonp

08/08/2009 23:24:00
Quote Anchor link
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
<?php
$src
= "C:\phpBB3 source";
$dst = "C:\map\map\phpBB 3.0.5";
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);
}

?>

Dit lijkt de enige manier. Echter het werkt niet en het lijkt me ook onlogisch om dit te doen: "\""
Ik krijg nu geen errors maar het werkt ook niet.
Gewijzigd op 01/01/1970 01:00:00 door Aaxklonp
 
Jan Koehoorn

Jan Koehoorn

08/08/2009 23:46:00
Quote Anchor link
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
<?php
    $src
= 'C:\\phpBB3 source';
    $dst = 'C:\\map\\map\\phpBB 3.0.5';
    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

09/08/2009 11:10:00
Quote Anchor link
Wauw, vet dat dat kan!
Weer krijg ik geen errors, maar helaas werkt het toch niet.
 



Overzicht Reageren