kostenloser Webspace werbefrei: lima-city


Suche auf lima-city

  • in: prüfen ob Datei in zwei Verzeichnisse doppelt ?

    geschrieben von snapy

    ahhhh ... danke

    jetzt weiss ich auch, warum es mit glob() nicht funktioniert hat,
    denn glob() hat im Array auch den Pfad (das Verzeichnis)
    und dann sind die "Strings" ja auch immer unterschiedlich

    habe mal eine Funktion draus gebastelt, ist bestimmt noch verbesserungsfähig

    // ----------------------------------------------------- 
    
    function dir_compare($dir1, $dir2) { 
    
    	$handle1 = opendir($dir1);
    	$comp1 = array(); 
    	while ($datei = readdir($handle1)) { 
    	 if ($datei != '.' && $datei != '..') { $comp1[]=$datei; } 
    	}
    	closedir($handle1);
    	
    	$handle2 = opendir($dir2);
    	$comp2 = array(); 
    	while ($datei = readdir($handle2)) { 
    	 if ($datei != '.' && $datei != '..') { $comp2[]=$datei; } 
    	}
    	closedir($handle2);
    	
    	
    	$result = array_intersect($comp1, $comp2);
    	
    	return $result; 
    	
    }
    
    // -----------------------------------------------------


    Aufruf:
    $doppelt = dir_compare('pfad1', 'pfad2');


    Ergebnis: Array mit doppelt vorkommenden Dateinamen

    zum Prüfen, ob "doppelt" nehme ich einfach array_intersect()
    dann spare ich mir den Vergleich mit den foreach Schleifen
    und habe das Ergebnis gleich als Array vorliegen.

    hier auch noch eine Version mit glob()


    // -----------------------------------------------------
     
    function dir_compare2($dir1, $dir2) {
     
        $dir1 = rtrim($dir1,'/');
        $xvz1= glob($dir1.'/*.*');
        $comp1 = array();
        foreach($xvz1 as $datei) {
         if ($datei != '.' && $datei != '..') { $comp1[] = str_replace($dir1.'/','',$datei); }
        }
     
        $dir2 = rtrim($dir2,'/');
        $xvz2 = glob($dir2.'/*.*');
        $comp2 = array();
        foreach($xvz2 as $datei) {
         if ($datei != '.' && $datei != '..') { $comp2[] = str_replace($dir2.'/','',$datei); }
        }
         
         
        $result = array_intersect($comp1, $comp2);
         
        return $result;
         
    }
     
    // -----------------------------------------------------


    ist die Frage was Ressourcen-schonender ist, mit readdir() oder mit glob()
    ... oder ganz anders?
  • in: prüfen ob Datei in zwei Verzeichnisse doppelt ?

    geschrieben von snapy

    Hallo

    wie kann ich überprüfen, ob in zwei Unter-Ordnern eine Datei doppelt vorhanden ist,
    also ... ob der gleiche Dateiname in beiden Ordnern vorhanden ist

    und dann eine Liste der "doppelten Dateien" ausgeben ?

    Beispiel:

    ------------------------------------------------- 
    /ordner1/aaaa.txt      |      /ordner2/yyyy.txt
    /ordner1/bbbb.txt      |      /ordner2/xxxx.txt
    /ordner1/cccc.txt      |      /ordner2/aaaa.txt
    /ordner1/zzzz.txt      |      /ordner3/zzzz.txt
    ------------------------------------------------- 
    
    Ergebnis: (in beiden Verzeichnissen vorhanden) 
    
    /aaaa.txt
    /zzzz.txt


    wie kann ich sowas mit PHP machen ?

Login zum Webhosting ohne Werbung!