Info

Best practice: Mit php Verzeichnisse rekursiv auslesen

Verfasst von Jens Reinemuth am 6. Februar 2010 - 13:57

Wenn man schnell und einfach Verzeichnisse mit php rekursiv auslesen möchte, hat sich das Verwenden der folgenden Funktion als die mit Abstand performanteste Lösung herausgestellt.

Momentan benutze ich sie in meiner eigenen kleinen API openWebX um meine Bilderverzeichnisse in Gallerien zu verwandeln. Die Laufzeit für ~140 Verzeichnisse mit insgesamt ~4900 Bildern beträgt knappe 2,2Sekunden auf meinem Developerrechner, inkl. dem Speichern der Infos in die Datenbank.

Vielleicht findet der ein oder andere sie nützlich:

function fileProfileDir( $dir ) {
  static $info = array();
  if( is_dir( $dir = rtrim( $dir, "/\\" ) ) ) {
    foreach( scandir( $dir) as $item ) {
      if( $item != "." && $item != ".." ) {
        $info['all'][] = $absPath = $dir . DIRECTORY_SEPARATOR . $item;
        $stat = stat( $absPath );		
	switch( $stat['mode'] & 0170000 ) {
	  case 0100000: 
            $info['files'][]       = $absPath; 
            break;
          case 0040000: 
            $info['directories'][] = $absPath; 
            fileProfileDir( $absPath ); 
            break;
          case 0120000: 
            $info['links'][]       = $absPath; 
            break;
          case 0140000: 
            $info['sockets'][]     = $absPath; 
            break;
          case 0010000: 
            $info['pipes'][]       = $absPath; 
            break;
        }
      }
    }
  }
  clearstatcache();       
  return $info;
}
Eigene Bewertung: Keines Durchschnitt: 4.7 (3 Bewertungen)

Anonym(er) surfen mit glype: http://proxy.reinemuth.info

Verfasst von Jens Reinemuth am 5. Oktober 2009 - 16:10

Wer ein wenig anonymer surfen möchte kann gerne den seit geraumer Zeit hier installierten glype-Proxy nutzen.

Da der lokale Webserver alle Zugriffs-IPs brav auf 127.0.0.1 verändert und die Software keinerlei lokale Daten speichert, sondern alle Webseite nur durchreicht, ist dies mein kleiner Beitrag zu mehr Anonymität im Netz.

Mehr Infos unter:

http://www.glype.com/

Eigene Bewertung: Keines Durchschnitt: 4 (1 Bewertung)

Datenschutz

...ist mir sehr wichtig!

Die Seite "reinemuth.info" speichert nur Daten, die für die Benutzung benötigt werden. Dazu gehören bei registrierten Benutzern deren Logindaten und die Daten die diese explizit für die Verwendung auf dieser Seite zur Verfügung gestellt haben. Logindaten werden direkt nach dem Abmelden vom System entfernt.

Zur Anonymisierung der Logeinträge des verwendeten Drupal-Systems habe ich das Modul IP Anonymize ein.

Datenaustausch

Die Seite betreibt keinerlei Datenaustausch mit externen Seiten.

Inhalt abgleichen