Ik ben aan het zoeken maar het lijkt haast alsof je met ftp over php alleen maar 1 bestand per keer kan ftp'en. Klopt dat en moet ik dus een loop maken om eerst de structuur op te vragen van het origineel, vervolgens de folders aanmaken met mkdir en dan 1 voor 1 de bestanden er in gooien?

Wat ik namelijk aan het maken ben is een website die ik wil klonen op mijn subs maar met kleine verschillen in de config. Gaat om de basis want de inhoud is verschillend.

Als mijn vermoeden klopt dan zal ik beginnen met het schrijven van een dergelijk stukje code maar wil even zeker weten dat er geen snellere en betere methode is.

Groeten,
Edwin
Ik snap niet wat je bedoelt met "maar 1 bestand per keer ftp'en". Hoop je dat je een hele map per keer kan verplaatsen ofzo? FTP = File Transfer Protocol. Kijk eens naar de logs van een gemiddelde FTP client en je ziet ook dat alles 1 voor 1 gaat.
ik had gehoopt dat er een functie was waarmee ik kon aangeven dat ik de huidige map en alle submappen met inhoud wil kopieren en vervolgens waar het heen moet. Omdat je dat nogal vaak doet had ik gehoopt een functie, class of code daarvan te vinden maar of ik zoek verkeerd of kijk op de verkeerde plaatsen want ik vind alleen maar voorbeelden en tutorials hoe je 1 bestand moet ftp'en en nergens hoe je een hele map met submappen moet verplaatsen.

Edwin :
Je kunt er natuurlijk altijd zelf een functie voor schrijven :)
Schokkend moeilijk is het niet (mits je iets weet van php)

Je zou bijvoorbeeld gewoon eerst je bestandsstructuur in een array kunnen zetten om deze vervolgens te verplaatsten.

Als ik er vanavond aan toe kom zal ik er ook eens naar kijken want het is wel grappig :)
dit is niet helemaal wat je zoekt, maar het is een aardige schop in de goede richting:

<?php
//niet extern aanroepen
if(isset($controle) && $controle==1){
//kijken of wel wel zijn ingelogt
if(isset($_SESSION["user_online"])){

//Rootmap hernoemen.
if(isset($_GET[rename]) && !in_array($_GET[rename], $array_root) && ereg("(^[a-zA-Z0-9]+([a-zA-Z\_\ 0-9\.-]*))$" , $_GET[rename])){
//nieuwe hoofdmapmaken
$rename=$_GET[rename];
mkdir ($rename, $chmod);

//submappen maken in hoofdmap
$array_sub1=array();

$open_sub1=opendir($_GET[sub1_loc]);
while (false!==($sub1 = readdir($open_sub1))) {
if (is_dir($_GET[sub1_loc].'/'.$sub1) && $sub1 != "." && $sub1 != "..") {
array_push($array_sub1,$sub1);
}
}
closedir($open_sub1);
//daadwerkelijk maken.
foreach($array_sub1 as $key => $sub1){
mkdir ($rename.'/'.$sub1, $chmod);
}

//uitlezen submappen
foreach($array_sub1 as $key => $sub1){
$open_file=opendir($_GET[sub1_loc].'/'.$sub1);
while (false!==($file = readdir($open_file))) {
if ($file != "." && $file != "..") {
$pad_ond = pathinfo($_GET[sub1_loc].'/'.$sub1.'/'.$file);
$pad=$pad_ond["dirname"].'/'.$pad_ond["basename"]; //kan ook exstentiion!!
$pad_nieuw=str_replace($_GET[sub1_loc], $rename, $pad);
//copy naar nieuwe locatie.
copy($pad, $pad_nieuw);
//weggooien oud bestand
unlink($pad);
}
}
closedir($open_file);
}

//weggooien oude submap
foreach($array_sub1 as $key => $sub1){
rmdir ($_GET[sub1_loc].'/'.$sub1);
//subdatabase updaten als ze bestaan.
$sql_query6 = "UPDATE sub1 SET onder='$rename' WHERE naam='$sub1';";
$result6 = mysql_query($sql_query6) or die(mysql_error());
}
//weggooien oude hoofddir
rmdir($_GET[sub1_loc]);
//database updaten
$sql_query5 = "UPDATE root SET naam='$rename' WHERE id='$row_mc[id]';";
$result5 = mysql_query($sql_query5) or die(mysql_error());
//controle regels voor het oke
$oke_2='
<p class=oke>Mapnaam is gewijzigd in: '.ucfirst($rename).'</p>
<p class=oke>Refresh in 2 seconden</p><meta http-equiv="refresh" content="2;?sub1_loc='.$rename.'">
';

}else{
$error_2='<span class=error>Nieuwe naam: '.ucfirst($rename).' is geen geldige naam of bestaat al!<span><br>';
}

}else{
echo'<h3>uw bent niet ingelogt en heeft geen recht om deze pagina te bekijken</h3>';
}
}else{
echo'<meta http-equiv="refresh" content="0;url=index.php">';
}
?>
ik kom even niet verder.
ik weet hoe de structuur moet worden met subdomeins etc en neig er naar om dat in een array te zetten ipv een dynamisch iets waarbij ik de programma laat bepalen.
Bovenstaand stukje is hulpvol maar ik zal nog nog even verder moeten klooien denk ik.

Reageren