php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Dateien und Ordner Kopieren (Spiegeln)


 
frettchen
28-01-2007, 03:30 
 
Hallo Leute.

Ich habe durch zufall einen beitrag in google gefunden von diesem Forum hier, was genau das beinhaltet, was ich suche, jedoch ist hier was verkehrt.

$handle=opendir('ordner1');
while ($file = readdir ($handle)) {
if ($file != "." && $file != "..") {
if(!is_dir($file)){
copy("ordner1/".$file,"ordner2/".$file);
}
}
}
closedir($handle);

Wenn ich das Local teste also
http://localhst/test/test.php <<-- oben gepostet

Soll mir jetzt in dem verzeichnis test den "ordner1" -> "ordner2" kopieren.

Er kopiert mir aber nur die Dateien, die sich in "ordner1" befinden -> "ordner2".

Wenn allerdings sich im "ordner1" weitere ordner befinden, so wird aus dem ordner ich nenne ihn mal "test" als dateisystem in "ordner2" angezeigt.

also zeig ich nochmal auf damit ihr das besser versteht.

SO SIEHT ES LOCAL AUS:

http://localhst/test/ordner1/datei.irgendwas
http://localhst/test/ordner1/2tedatei.irgendwas
http://localhst/test/ordner1/irgendeinordner/datei.irgendwas
http://localhst/test/ordner1/irgendeinordner/2tedatei.irgendwas

Ich moechte jetzt, wenn ich die Datei http://localhst/test/test.php aufrufe, das nun der ordnerinhalt "ordner1" -> "ordner2" mit dateien und unterordner der wierderum unterdateien und ordner hat, dier wiederum ordner und unterhat u.s.w. u.s.f. Kopiert wird.

Das oben gepostete script, das Kopiert mir jetzt zwar aus "ordner1" zu "ordner2" jedoch wenn dort ein unterordner ist, wird dieser beim kopieren nicht als solcher erkannt, und wird als DATEI erstellt, die wiederum wenn ich sie mir mit dem Editor anschaue noch nicht einmal daten beinhaltet.

Wie muss der obige Code nun aussehen, damit ich nun den "ordner1" nach "ordner2" Spiegeln kann ?

WICHTIG: Es duerfen dabei keine Dateien verloren gehen, es muss wie bei windows KOPIEREN und EINFUEGEN gemacht werden, was bei dem obigen script nur TEILWEISE geht.

bitte helft mir, ich veruche nebenbei auch im web mehr ueber mein pbol zu erfahren, jedoch ist es nich so einfach :(

 
pekka
28-01-2007, 05:13 
 
Bei http://de.php.net/copy gibt es unten bei den user contributed notes einige rekursive Verzeichnis-Kopierfunktionen.

 
frettchen
28-01-2007, 09:45 
 
Halllo.
Soweit war ich schon, das hilft mir aber nicht weiter :-((

 
asp2php
28-01-2007, 10:34 
 
Original geschrieben von frettchen
Halllo.
Soweit war ich schon, das hilft mir aber nicht weiter :-((
und warum nicht? hast du z.B. das hier (http://de.php.net/manual/de/function.copy.php#70238) schon durchgelesen? Ansonstens wenn du

if(!is_dir($file)){ ...

machst, warum wundert dich, dass nur files kopiert wurden?

 
frettchen
28-01-2007, 11:33 
 
Ja das Manual habe ich von oben bis unten abgearbeitet.
Ende vom Lied: Keines der Scripts funzte.
ich konnte zwar angeben welcher ordner eingelesen werden soll, und wohin das ganze verfrachtet (kopiert) werden soll, aber es passierte nichts. ich hab das local getestet, als auch aufem server. es passiert nix.


zunaechsteinmal.:

Ich habe ein script gesucht, habe dazu google benuutzt, und habe dann das gefunden, was ich haben wollte, das ganze stammte hier aus diesem forum. ich habe es dann 1:1 uebernommmen, und nur meine ordner eingestellt.

ich habe aber jetzt was anderes gefunden, so klappt das jetzt. und zwar hiermit:

<? exec("cp -r /var/www/web1/html/web /var/www/web1/html/test"); ?>

Das klappt jetzt soweit ganz gut, und genau so, wie ich das haben moechte.

Nun hab aber ein probl. Da ich ueber das web durch den php code einen ordner der sich AUSSERHALB meines /var/www/web1/ befindet kopieren moechte wie muss dann das ganze aussehen ?

ich moechte dann das ganze follgender massen machen:

<? exec("cp -r /var/www/web1/html/web /var/www/web2/html/web"); ?>

Das wuerde heissen, das ich von web1 -> kopieren moechte.

das bloede daran ist, es funzt nicht.

wie muss dafuer der Codeblock aussehen, sodass ich dann einen ordner der in web1 ist, nach web2 kopieren kann ?

die sache ist diese:

Ich biete fuer kumpels von mir Space an.
Nun muesste aber ein ordner zwecks der verwaltung von A (web1) nach B (web2) aber das geht nicht mit diesem code.

Der ordner, wohin das ganze hinkopiert werden soll, bleibt nachwievor Leer.

ich habe auf dem web2 die selbe ordnerstrucktur wie auf web1.

nur das der ordner auf web2 leer ist.

der ordner web im web2 habe ich mit schreibrechten versehen.

Dennoch bleibt er leer.

was tun ?

 
asp2php
28-01-2007, 13:51 
 
hast du root-Rechte? oder mal mit sudo versucht? PHP läuft in einem anderen Userkontext und dürfte normalerweise nicht das Recht besitzen, außerhalb des document-root zu bewegen.

 
frettchen
28-01-2007, 21:07 
 
Nein, root rechte habe ich nicht.

 
pekka
28-01-2007, 21:10 
 
Geht es um eine einmalige Aktion? Dann bitte den Admin, kurz ein cp -r zu machen.

 
frettchen
29-01-2007, 01:04 
 
Hallo.
Also das ich 1x den ordner rueber kopieren muss, ist einmalig.

Jedesmal nur dann, wenn ich meinen freunden webspace aufschalte.

Zudem, muesste ich jedesmal den Admin anfragen, das waere, wenn ich das 3x am tag machen muesste, etwas nerfig fuer den admin.

 
pekka
29-01-2007, 01:13 
 
Dann gehe entweder den Umweg über FTP, oder bitte den Admin, die Sicherheitseinstellungen zu lockern.

 
frettchen
29-01-2007, 12:44 
 
Danke, du hast mir insoweit schon ziehmlich weiter geholfen.
Ich werde das Seperat per FTP machen, da ich mich nicht so auskenne.

Ich weiss jan icht was passiert, wenn der Admin die sicherheitseinstellungen lockert, da auf dem Server noch andere Kunden gehostet werden.

Ich werds dann wie gesagt per FTP machen.
Danke nochmals.

im uebrigen, kann hier geclosed werden..


Alle Zeitangaben in WEZ +2. Es ist jetzt 14:37 Uhr.