Fehler beim kopieren!

Also ich hab folgenden Code gefunden und ein wenig umgeschrieben:

[php]
$num = 0;
if(!is_dir($dstdir)) mkdir($dstdir);
if($curdir = opendir($srcdir)) {
while($file = readdir($curdir)) {
if($file != ‚.‘ && $file != ‚…‘) {
$srcfile = $srcdir . ‚/‘ . $file;
$dstfile = $dstdir . ‚/‘ . $file;
if(is_file($srcfile)) {
if(is_file($dstfile)) $ow = filemtime($srcfile) - filemtime($dstfile); else $ow = 1;
if($ow > 0) {
if($verbose) echo „Copying ‚$srcfile‘ to ‚$dstfile‘…“;
if(copy($srcfile, $dstfile)) {

//-----------------------------------------------------------------
$needle = array(„_vorlage“);
$replace = „etwas_anderes“;
$haystack = file_get_contents(„$dstfile“);

            $text = str_replace($needle, $replace, $haystack);
            
            $fp = fopen("$dstfile","w");
            fwrite( $fp, $text);
            fclose( $fp );

//-----------------------------------------------------------------

         touch($dstfile, filemtime($srcfile)); $num++;
         if($verbose) echo "OK\n";
       }
       else echo "Error: File '$srcfile' could not be copied!\n";
     }                 
   }
   else if(is_dir($srcfile)) {
     $num += dircopy($srcfile, $dstfile, $verbose);
   }
 }

}
closedir($curdir);
}
[/php]Funktioniert so weit auch ganz gut, die markierte Stelle soll halt in jeder Datei ein bestimmtes Wort ersetzen. Da die Funktion auch alle Unterverzeichnisse durchläuft, dachte ich, das auch alle Wörter in den Unterdateien ersetzt werden, werden sie aber nicht.

Heißt alle Dateien im Hauptverzeichnis werden entsprechend bearbeitet, die Unterverzeichnisse werden dann zwar kopiert aber die Dateien darin werden nicht richtig geändert: Das zu ersetzende Wort wird entfernt aber das neue wir nicht eingesetzt. Was ist an dem Code falsch?

Versuchs mal mit

[php]$fp = fopen($srcfile,„w“);[/php]

du solltest dir dies mal anschauen…

Programming Psychology - Return home early » Debuggable Ltd

Mit

[php]
$fp = fopen($srcfile,„w“);
[/php]funktioniert es auch nicht…

EDIT: Hab den Fehler gerade gefunden:

Hab bei [php]
else if(is_dir($srcfile)) {
$num += dircopy($srcfile, $dstfile, $verbose, $user, $element, $email);
}[/php] noch mehrere Parameter übergeben, die für das Replace wichtig sind.
Manchmal sieht man den Wald vor lauter Bäumen nicht. :wink: