Mappen + bestanden + submappen kopiëren
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:
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 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
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)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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);
}
$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 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
Gesponsorde koppelingen:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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);
}
?>
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);
}
?>
http://nl.php.net/copy
Had ik inderdaad ook gevonden.
Het volgende werkt helaas niet:
Had ik inderdaad ook gevonden.
Het volgende werkt helaas niet:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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);
}
?>
$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);
}
?>
Werk je op een windows PC? Dan moet je backslashes gebruiken in plaats van slashes (ook binnen je functie aanpassen).
Gewijzigd op 01/01/1970 01:00:00 door Jan Koehoorn
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...
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
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:
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..
Ik krijg nu steeds parse errors, omdat ik niet weet waar ik nou ' moet gebruiken en waar ". Zo is het nu:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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);
}
?>
$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
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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);
}
?>
$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
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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);
}
?>
$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);
}
?>
Wauw, vet dat dat kan!
Weer krijg ik geen errors, maar helaas werkt het toch niet.
Weer krijg ik geen errors, maar helaas werkt het toch niet.



