Mappen + Files + Submappen kopiëren

Status
Niet open voor verdere reacties.

Aaxklonp

Gebruiker
Lid geworden
1 mrt 2007
Berichten
97
Hey,
Ik ben al lang op zoek naar een script waarmee ik alle mappen van phpBB3 kan kopiëren naar een andere plek. Het volgende heb ik gevonden:

Code:
// * * 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);
}
Dit script kopiëert geen submappen mee, alleen de files. Dan moet ik dus voor elke submap dit scriptje laten runnen, wat een enorme tijd kost; lijkt me geen goed idee.
Naast de basisprincipes van php ken ik het nog niet zo goed en ik kom er niet uit. Zou iemand willen zeggen wat er fout is of wat er aan toegevoegd moet worden?

Thanx!:)
 
Ik heb zo geen scriptje voor je, maar waarom zou je programmatisch alle mappen willen kopiëren?

Waarom niet gewoon even inloggen op je FTP in je favoriete FTP-client en die map gewoon op een andere plek droppen...
 
Ik wil het in een automatisch script zetten. In m'n eigen control panel op mijn eigen server. Het is niet voor 1x kopiëren maar voor meerdere keren.
 
Laatst bewerkt:
Re:

Is er misschien een andere manier om dit te doen? Exec heb ik uit staan, dus met DOS gaat het denk ik niet?
 
Kan nou echt niemand dit? Ik heb alle mogelijke sites 4x afgespeurd :confused:
 
Bedankt! Ik heb er zeker wat aan. Hij kopiëert ook de subdirs mee, waar ik heel blij mee ben. Nu moet ik nog uitzoeken hoe ik ervoor kan zorgen dat ik in het script een source-dir kan aangeven en een destination-dir. Tot nu toe lukt mij dat nog niet.

Bedankt!

Mvg
Aaxklonp
 
Hey,

Ik krijg het niet voor elkaar helaas. Ik kan niet simpelweg neerzetten wat het id moet worden, want het id wordt dan weer overschreven door een volgend stukje in het script. Ik heb hem flink uit elkaar gehaald, maar dit kan ik simpelweg nog niet, hij werkt dan direct niet meer.

Zou je me een klein eindje op weg willen helpen?:rolleyes:

Alvast heel erg bedankt!

Mvg
Aaxklonp
 
Misschien kun je even het stuk code dat van belang is hier posten? Dan hoef ik niet die hele class en zo door te gaan spitten.
 
Dat is het nu juist, ik weet niet welk stuk van de code. Sowieso moet er een makkelijkere weg zijn denk ik, want dit wordt dan een heel groot script...
 
Ik wordt zo gauw ook niet helemaal wijs uit die class. Wellicht kan iemand anders er nog even naar kijken.
 
Kan het niet bekijken zonder te registreren op die website.

Hier mijn eigen code, misschien helpt dat je wat verder:
PHP:
<?php
function kopie($bron, $doel) {
	if (file_exists($bron)) {
		if (is_dir($bron)) {
			mkdir($doel);
			$verberg = array(".","..");
			$leesmap = opendir($bron);
			while($bestand = readdir($leesmap)) {
				if (in_array($bestand,$verberg)) continue;
				$pad = $bron."/".$bestand;
				if (is_dir($pad)) {
					kopie($pad,$doel."/".$bestand);
					continue;
				}
				copy($pad,$doel."/".$bestand);
			}
			closedir($leesmap);
		} else {
			copy($bron, $doel);
		}
	} else {
		die("Fout: '".$bron."' bestaat niet.");
	}
}
//kopie("bestaandemap", "temakenmap");
?>
Dit is trouwens wel iets dat je eigenlijk buiten php om moet doen met system() / exec() / passthru() icm een opdracht voor het achterliggende systeem.
 
Oké.
Helaas zijn system() en exec() uitgeschakeld, passthru() weet ik niet.
Jouw script heb ik geprobeerd en aangepast met de slashes etc, maar ik krijg geen foutmelding en toch doet hij het niet.
Ik blijf doorzoeken! Tips zijn welkom!
Ty!
Mvg
Aaxklonp
 
Heb je error_reporting wel aanstaan?

Zet eens:

PHP:
error_reporting ( E_ALL );
ini_set ( 'display_errors', 1 );

helemaal boven aan je code. Wellicht krijg je dan een error waar we iets mee kunnen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan