Dateien von einem Ordner zu einem andere verschieben und das wird automasiert

moua09

Grünschnabel
Hallo leute, ich habe ein PHP-Datei programmiert, aber habe ich mein Ziel nicht erreicht.
Ziel : die Dateien werden von einem Verzeichnis zu andere Verzeichnis verschieben (Kopiert), und auch die Datei wird zuerst kopiert und dann nach (z.B. eine Stunde ) wird der zweite Datei kopiert dann die dritte und soweiter bis Ende, d.h. die Verschiebung ist automatisch. Aber so das programmiert:
PHP:
<?php
$timestamp = time();
$datum = date("d.m.Y - H:i",$timestamp);

$dir = "../Tag_Test04/";
$dest = "dest";

if (is_dir($dir))
{
        if ($dh = @opendir($dir))
       {
             echo "Directory handle: $dh<br />";
             echo "Files: <br />";
             while (($file = readdir($dh)) !== FALSE)
            {
                      if (filetype($dir.$file) == "file"  && substr($file,-4) == ".php")
                     {

                             $files[] = $file;
                             foreach ($files as $f)
                            {
                                        echo $f."<br />";
                            }
                           foreach ($files as $f)
                           {
                                     copy($dir.$f, $dest.$f);
                                    unlink($dir.$f);
                           } 
                    }
           }
          closedir($dh);
    }
}
Das Kopie fonktioniert nicht
und wie kann ich weiter programmieren Kopieren und automatisieren.

Danke
 
Zuletzt bearbeitet:
Ich versteh deine Frage nicht wirklich. Du willst kopieren anstelle von verschieben? Oder zuerst verschieben und dann eine Stunde später kopieren?

PS: Arbeite mit Tabulatoren im Code, damit man sieht wo welche { geschlossen wird. Macht das ganze lesbarer und ist somit auch weniger Fehleranfällig.
 
und ich will das automatisieren , das heißt die Dateien werden nicht auf einmal kopiert. Zuerst der erste nach eine Stunde der Zweite ......etc
 
das ist richtig , es gibt kein syntax-Fehler aber trotzdem fonktioniert nicht.
Und wie zeigt sich das?
Wird verschoben? Passiert gar nix?

Je mehr infos du uns gibst, umso besser können wir dir helfen - es liegt also an dir

Für alle die helfen wollen. Hier kal den Code in lesbarer Form, ohne dass man Klammern zählen muss
PHP:
<?php
$timestamp = time();
$datum = date("d.m.Y - H:i",$timestamp);
 
$dir = "../Tag_Test04/";
$dest = "dest";
 
if (is_dir($dir)){
  if ($dh = @opendir($dir)){
      echo "Directory handle: $dh<br />";
      echo "Files: <br />";
      while (($file = readdir($dh)) !== FALSE){
          //echo "filename : $file : ".  filetype($dir . $file)."<br />";
          //echo "<hr>";
          if (filetype($dir.$file) == "file"  && substr($file,-4) == ".php"){
                //echo "Hallo Rayan";  
                $files[] = $file;
                foreach ($files as $f){
                    echo $f."<br />";
                }
                foreach ($files as $f){
                    copy($dir.$f, $dest.$f);
                    unlink($dir.$f);
                }  
            }
        }
        closedir($dh);
    }
}
 
Z.B. Verzeichnis A enthät z.B. 10 Dateien mit Endung .php oder sql. und ich habe anderes Verzeichnis B ist leer.
Ich möchte nur diese Dateien einfach kopieren oder verschieben. Aber die Verschiebung wird automatisiert d.h wird schon geschrieben habe, zuerst die ertse Datei wird verschoben dann nach eine Stunde der zweite Datei dann nach eine Stunde danach die dritte und soweiter.
 
Lösche die Zeile mit dem unlink() zum kopieren anstelle von verschieben. Mit dem unlink() löscht du das Original.

Wie deine Automatiesierung aussehen soll, habe ich noch nicht begriffen. Es scheint mir, als ob du selber noch nicht wüsstest, was du den haben willst.

Für den Stundenrythmus machst du am besten einen Cronjob
 

Neue Beiträge

Zurück