PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Hilfe bei Dateiname umbenennen


Ahab
28.09.2004, 10:16:13
Hallo,
habe folgendes Script (mit Hilfe) erstellt (bin absoluter Newbie):


<?
$file = "asjkdföa.sadf";
$endung = ".csv";
$newfile = ereg_replace(".(...)$","1",$file) . $endung;?>
Kopiere Datei: <? echo $file;
if (!copy($file, "umbenannt/".$newfile))
{
echo "<p>Datei $file nicht gefunden";
} else {
echo "<p>Datei $file erfolgreich kopiert und in $pfad$newfile umbenannt";
}
?>

Ich brauche hierzu noch eine Erweiterung, dass nicht nur eine bestimmte Datei (hier: asjkdföa.sadf) , sondern alle Dateien im Verzeichnis die eine bestimmte Buchstabenanzahl haben, kopiert, umbenannt und verschoben werden. Kann mir hier jemand helfen?

xabbuh
28.09.2004, 10:28:20
Du durchläufst im Prinzip alle Dateien in diesem Verzeichnis und überprüfst, ob die Datei eine bestimmte Bedingung erfüllt. Wenn dies der Fall ist, führst du die gewünschten Optionen an dieser Datei aus:


<?php
// Verzeichnis, in dem diese Optionen ausgeführt werden soll
$dir = 'verzeichnisname';

$handle = opendir($dir);
while(false !== ($file = readdir($dir))) {
// Bedingung, die erfüllt sein muss
if(...) {
// hier die aktionen durchführen
}
}
closedir($handle);
?>


Nützliche Links:
opendir() (http://www.php.net/opendir)
readdir() (http://www.php.net/readdir)

Ahab
28.09.2004, 11:01:07
Genau das, was nach dem if kommt, bereitet mir Kopfschmerzen. Muss ich da was zählen lassen (8 Zeichen vor und 3 hinter dem Punkt)?? Hab nen Knoten im Kopf.

xabbuh
28.09.2004, 11:15:04
Die Variable $file verweist ja auf die Datei, die gerade in der Schleife verarbeitet werden kann. Du könntest dann in der Bedingung mit regulären Ausdrücken (http://tut.php-q.net/regex.html) prüfen, ob die Datei deinen Anforderungen entspricht.