Ordner kopieren und eins hochzählen PHP
bearbeitet von Jörg ReinholzMoin!
> Wie wäre denn die "einfache" Lösung?
Aus Gründen der Einfachheit habe ich kurzerhand einen Shell-Befehl verwendet, das läuft nur unter Linux und Unixoiden.
Ich habe nicht alle möglichen Fehler abgefangen und das Skript ist auch nicht schön. Es dürften sich viele Kritikpunkte finden. Es ist "schnell und schmutzig", funktioniert aber wenn die Voraussetzungen stimmen.
Soll das Skript was ausgeben, dann schreib was rein.
~~~php
<?php
## Konfiguration
# Welches Verzeichnis soll kopiert werden?
define('ModelDir', '/tmp/0' ); # Ändern
# Verzeichnis mit den zu kopierenden Verzeichnissen:
define ('BaseDir', '/tmp/test2'); # Ändern
# Anzahl neuer Ordner
define ('AnZahl', '10'); # Ändern
## Programm
# suchen des Ordners mit der gößten Nummer
if (! is_dir(BaseDir) ) { die ( BaseDir . "ist kein Verzeichnis!\n" ); }
$d = dir( BaseDir );
$groessteNummer=0;
while (false !== ($entry = $d->read())) {
# Nur Einträge deren Namen nur aus Ziffern bestehen:
if ( preg_match('/^[0-9]+$/', $entry) ) {
$entry=intval($entry);
if ( $entry > $groessteNummer ) { $groessteNummer = $entry; }
}
$start = $groessteNummer + 1;
$ende = $start + AnZahl;
}
$d->close();
for ($i=$start; $i<=$ende; $i++) {
$newDir= BaseDir .'/'. $i;
mkdir ($newDir);
$sys='cp -r ' . ModelDir . "/* $newDir/";
#echo "$sys\n";
$dummy=`$sys`;
}
~~~
Jörg Reinholz
Ordner kopieren und eins hochzählen PHP
bearbeitet von Jörg ReinholzMoin!
> Wie wäre denn die "einfache" Lösung?
Aus Gründen der Einfachheit habe ich kurzerhand einen Shell-Befehl verwendet, das läuft nur unter Linux und Unixoiden.
Ich habe nicht alle möglichen Fehler abgefangen und das Skript ist auch nicht schön. Es dürften sich viele Kritikpunkte finden. Es ist "schnell und schmutzig", funktioniert aber wenn die Voraussetzungen stimmen.
Soll das Skript was ausgeben, dann schreib was rein.
~~~php
<?php
## Konfiguration
# Welches Verzeichnis soll kopiert werden?
define('ModelDir', '/tmp/0' ); # Ändern
# Verzeichnis mit den zu kopierenden Verzeichnissen:
define ('BaseDir', '/tmp/test2'); # Ändern
# Anzahl neuer Ordner
define ('AnZahl', '10'); # Ändern
## Programm
# suchen des Ordners mit der gößten Nummer
if (! is_dir(BaseDir) ) { die ( BaseDir . "ist kein Verzeichnis!\n" ); }
$d = dir( BaseDir );
$groessteNummer=0;
while (false !== ($entry = $d->read())) {
#Nur Einträge mit Zahlen:
if ( preg_match('/^[0-9]+$/', $entry) ) {
$entry=intval($entry);
if ( $entry > $groessteNummer ) { $groessteNummer = $entry; }
}
$start = $groessteNummer + 1;
$ende = $start + AnZahl;
}
$d->close();
for ($i=$start; $i<=$ende; $i++) {
$newDir= BaseDir .'/'. $i;
mkdir ($newDir);
$sys='cp -r ' . ModelDir . "/* $newDir/";
#echo "$sys\n";
$dummy=`$sys`;
}
~~~
Jörg Reinholz
Ordner kopieren und eins hochzählen PHP
bearbeitet von Jörg ReinholzMoin!
> Wie wäre denn die "einfache" Lösung?
Aus Gründen der Einfachheit habe ich kurzerhand einen Shell-Befehl verwendet. Soll das Skript was ausgeben, dann schreib was rein.
~~~php
<?php
## Konfiguration
# Welches Verzeichnis soll kopiert werden?
define('ModelDir', '/tmp/0' ); # Ändern
# Verzeichnis mit den zu kopierenden Verzeichnissen:
define ('BaseDir', '/tmp/test2'); # Ändern
# Anzahl neuer Ordner
define ('AnZahl', '10'); # Ändern
## Programm
# suchen des Ordners mit der gößten Nummer
if (! is_dir(BaseDir) ) { die ( BaseDir . "ist kein Verzeichnis!\n" ); }
$d = dir( BaseDir );
$groessteNummer=0;
while (false !== ($entry = $d->read())) {
#Nur Einträge mit Zahlen:
if ( preg_match('/^[0-9]+$/', $entry) ) {
$entry=intval($entry);
if ( $entry > $groessteNummer ) { $groessteNummer = $entry; }
}
$start = $groessteNummer + 1;
$ende = $start + AnZahl;
}
$d->close();
for ($i=$start; $i<=$ende; $i++) {
$newDir= BaseDir .'/'. $i;
mkdir ($newDir);
$sys='cp -r ' . ModelDir . "/* $newDir/";
#echo "$sys\n";
$dummy=`$sys`;
}
~~~
Jörg Reinholz