| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |
|

18-08-2010, 12:29
|
|
phppower
Registrierter Benutzer
|
|
Registriert seit: Jul 2009
Beiträge: 11
|
|
Ausgabe ändern?
Hallo,
hab mir mit Hilfe einiger Vorschläge ein Script zusammengestellt, welches Ordner sowie Unterordner ausliest. Das funktioniert zwar, aber so wie es jetzt ist möchte ich es eigentlich nicht. Es soll im Prinzip nur die Gesamtmenge aller benannten Dateiendungen ausgegeben werden. Ich quäle mich jetzt schon einige Tage damit rum und finde keine passende Lösung. Vielleicht kann mir ja hier einer helfen.
Hier mal mein Code:
PHP-Code:
<?php ini_set('display_errors', TRUE); error_reporting(E_ALL); function get_files($dir,&$endungen) { $result = array(); foreach(glob($dir.'/*') as $file) { $path_parts = pathinfo($file); if( is_file($file) && isset($path_parts['extension']) && in_array($path_parts['extension'],$endungen) ) $result[] = $file; if(is_dir($file)) $result = array_merge($result,get_files($file,&$endungen)); } return $result; } $dir = './files'; $endungen = array('jpg','gif','png'); foreach(get_files($dir,&$endungen) as $file) echo $file.'<br>'; ?>
|

18-08-2010, 12:33
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.306
|
|
Schau dir mal hier die ersten beiden Einstiegstutorials an. Da geht es um dein Thema. Ist zwar OOP, aber vielleicht hilft es dir weiter. Notfalls ziehst du dir einfach die Lösung des zweiten Einstiegstutorials und nutz die.
Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
|

18-08-2010, 12:39
|
|
phppower
Registrierter Benutzer
|
|
Registriert seit: Jul 2009
Beiträge: 11
|
|
erstmal danke für die Antwort und den Tip. Nur leider ist das genau das was ich im moment ja habe. Ich finde da keinen Hinweis für die Zählung der Datein.
mfg
|

18-08-2010, 12:43
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.306
|
|
Zitat:
Zitat von phppower
erstmal danke für die Antwort und den Tip. Nur leider ist das genau das was ich im moment ja habe. Ich finde da keinen Hinweis für die Zählung der Datein.
mfg
|
Ups, hab was überlesen. Anstatt die Dateien in das Array zu schreiben, baust du einen Counter ein und zählst den hoch.
Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
|

18-08-2010, 13:55
|
|
phppower
Registrierter Benutzer
|
|
Registriert seit: Jul 2009
Beiträge: 11
|
|
Hab jetzt die Zählfunktion eingesetzt denke mal auch an richtiger Position nur wie setze ich nun die Ausgabe anders?
PHP-Code:
<?php ini_set('display_errors', TRUE); error_reporting(E_ALL); function get_files($dir,&$endungen) { $i = 0; $result = array(); foreach(glob($dir.'/*') as $file) { $path_parts = pathinfo($file); if( is_file($file) && isset($path_parts['extension']) && in_array($path_parts['extension'],$endungen) ) $result[] = $file; if(is_dir($file)) $result = array_merge($result,get_files($file,&$endungen)); $i++; } return $result; } $dir = './files'; $endungen = array('jpg','gif','png'); foreach(get_files($dir,&$endungen) as $file) echo $file.'<br>'; ?>
|

18-08-2010, 14:55
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.306
|
|
Mit return?
Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
|

18-08-2010, 15:06
|
|
phppower
Registrierter Benutzer
|
|
Registriert seit: Jul 2009
Beiträge: 11
|
|
ich meinte eigentlich wie ich diese zeile verändern müsste:
PHP-Code:
foreach(get_files($dir,&$endungen) as $file) echo $file.'<br>';
return ist ja schon drin
|

18-08-2010, 15:09
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.306
|
|
Zitat:
Zitat von phppower
ich meinte eigentlich wie ich diese zeile verändern müsste:
PHP-Code:
foreach(get_files($dir,&$endungen) as $file) echo $file.'<br>';
return ist ja schon drin
|
Wolltest du nicht einfach nur die Gesamtzahl haben? dann gib nach der Schleife in der Funktion einfach $i per return zurück.
Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
|

18-08-2010, 16:15
|
|
kalle01
Registrierter Benutzer
|
|
Registriert seit: Jul 2004
Beiträge: 9
|
|
Hi,
ich weiß nicht so recht, hab mir nicht alles genau durchgelesen.
Vielleicht kannste ja hievon was gebrauchen aus mein Code-Archiv:
Dateianzahl in einem Ordner auslesen
PHP-Code:
<?php
$dir = "./verzeichnis";
$DIR = opendir( "/verzeichnis" );
while ( ( $file = readdir( $DIR ) ) !== false ) {
if ( $file != "." && $file != ".." ) {
$files[] = $file;
}
}
closedir ( $DIR );
echo "Im Ordner " . $dir ." sind ". count ( $files ) . " Dateien.";
?>
oder etwas mehr im Detail
PHP-Code:
<?php
$dir = "./pfad_zum_verz";
$DIR = opendir( "$dir" );
while ( ( $file = readdir( $DIR ) ) !== false ) {
// JPG Dateien
if(eregi('(\.jpg)$', $file, $jpgdateien)){
$jpgfiles[] = $file;
$jpgsize += sprintf("%.2f",filesize($file)/1024);
}
// GIF Dateien
if(eregi('(\.gif)$', $file, $gifdateien)){
$giffiles[] = $file;
$gifsize += sprintf("%.2f",filesize($file)/1024);
}
// PHP Dateien
if(eregi('(\.php)$', $file, $phpdateien)){
$phpfiles[] = $file;
$phpsize += sprintf("%.2f",filesize($file)/1024);
}
}
closedir ( $DIR );
echo "Im Ordner " . $dir ." sind ". count ( $jpgfiles ) . "$jpgdateien[1] Dateien mit $jpgsize KB.<br>";
echo "Im Ordner " . $dir ." sind ". count ( $giffiles ) . "$gifdateien[1] Dateien mit $gifsize KB.<br>";
echo "Im Ordner " . $dir ." sind ". count ( $phpfiles ) . "$phpdateien[1] Dateien mit $phpsize KB.<br>";
?>
Die Ausgabe beim letzten wäre dann so:
Im Ordner ./pfad_zum_verz sind 3.jpg Dateien mit 635.8 KB.
Im Ordner ./pfad_zum_verz sind 5.gif Dateien mit 21.81 KB.
Im Ordner ./pfad_zum_verz sind 5.php Dateien mit 2.82 KB.
__________________
Mfg kalle
|

18-08-2010, 16:19
|
|
phppower
Registrierter Benutzer
|
|
Registriert seit: Jul 2009
Beiträge: 11
|
|
hab ich versucht kommt aber nix bei raus. Ich könnte echt durch drehen.
|

18-08-2010, 18:13
|
|
Peacie
Registrierter Benutzer
|
|
Registriert seit: Nov 2003
Beiträge: 341
|
|
PHP: eregi - Manual
Zitat:
|
Diese Funktion ist seit PHP 5.3.0 DEPRECATED (veraltet). Sich auf diese Funktion zu verlassen ist in keiner Weise empfehlenswert.
|
|

18-08-2010, 18:26
|
|
phppower
Registrierter Benutzer
|
|
Registriert seit: Jul 2009
Beiträge: 11
|
|
die Funktion steht net in meinem code und um den geht es ich suche eine Lösung auf die ich bisher selber nicht gekommen bin. Die einfache zählmethode funzt hier nicht, es werden ordner mitgezählt und das soll nicht.
|

18-08-2010, 18:29
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.481
|
|
Zitat:
Zitat von phppower
Die einfache zählmethode funzt hier nicht, es werden ordner mitgezählt und das soll nicht.
|
Ja dann zähl' die Ordner halt einfach nicht mit, in dem du vorher prüfst, ob es sich um einen Ordner oder eine Datei handelt ...
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

18-08-2010, 19:05
|
|
Peacie
Registrierter Benutzer
|
|
Registriert seit: Nov 2003
Beiträge: 341
|
|
dein erstes beispiel umgebaut gibt dir zumindestens schonmal was zählbares zurück:
PHP-Code:
ini_set('display_errors', TRUE);
error_reporting(E_ALL);
function get_files($dir,&$endungen)
{
$i = 0;
$result = array();
foreach(glob($dir.'/*') as $file)
{
$path_parts = pathinfo($file);
if( is_file($file) &&
isset($path_parts['extension']) &&
in_array($path_parts['extension'],$endungen)
) $result[$path_parts['extension']][] = $file;
if(is_dir($file))
$result = array_merge($result,get_files($file,&$endungen));
$i++;
}
return $result;
}
$dir = './style';
$endungen = array('jpg','gif','png');
foreach(get_files($dir,&$endungen) as $file) print_r( $file).'<br>';
edit: sorry, funktioniert so nicht richtig. sollte den code vorher mal ansehen :P
Geändert von Peacie (18-08-2010 um 19:11 Uhr)
Grund: nicht wirklich getestet
|

18-08-2010, 19:10
|
|
phppower
Registrierter Benutzer
|
|
Registriert seit: Jul 2009
Beiträge: 11
|
|
das der code mir was zählbares ausgibt sehe ich ja selbst. die zählfunktion $i=0 und $i++ sind auch schon drin nur bei der ausgabe ansich schlägt alles fehl was ich versuche. 
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|