close× Call Us +49 (1805) 01 29 59

HarlekinPower
Thread Author: phppower
Thread ID: 2955
Thread Info
Es gibt 6 Beiträge zu diesem Thema, und es wurde 1839 mal angesehen.
 Thema drucken
Fehler in meinem Code??
phppower
Hallo,

ich habe mir eine Abfrage geschrieben und die Menge bestimmter Dateien aus einem Ordner + aller Unterordner auszulesen. Jedoch bekomme ich ständig Fehlermeldungen. Vielleicht sieht von euch einer die Ursache dafür?

Code

<?php
$endung = array('bmp','png','jpg','gif');
function myReadDir($path)
{
if ($handle = opendir($path))
{
while (false !== ($file = readdir($handle)))
{
if ($file != "." && $file != "..")
{
if (in_array(substr($file, -3), $endung))
}
if (is_dir($path . '/' . $file))
{
myReadDir($path . '/' . $file);
}else
{
$anzahl = count($file);
if ($anzahl != 0)
{
sort($file);
for($i=0; $i<$anzahl; $i++)
}
echo "<p>".$anzahl." Dateien</p>";
}
}
closedir($handle);
}
}
myReadDir("./files");
?>
 
SC-Ad-Bot
 
emblinux
Du hast in deinem Code eine IF-Anweisung, die keinen Anweisungsblock hat also keine { } dahinter mit dem enthaltenem Code darin.

Dasselbe bei der For-Schleife. Also nochmal drüber schauen und die Anweisungsblöcke beachten, das diese an der richtigen Stelle anfangen und beendet werden.
Das Lernen ist wie ein Meer ohne Ufer. Konfuzius

Alles wird Gut!

KEIN Support per Mail, ICQ oder PN !
www.heiseclan.de/fusion/sig.gif

www.heiseclan.de/geosig.gif
 
phppower
hmm ich muß Blind sein oder doof oder beides, habe die {} nochmal geprüft und jede Anweisung hat eine.

Egal welche Änderung ich mache meine Fehlermeldung (Parse error: syntax error, unexpected '}' in) kommt immer wieder obwohl alle geschlossen sind.
 
phppower
Aber es sind doch beide rot markierten Felder korrekt geöffnet und geschlossen. Versteh ich grad nicht NEIN
 
phppower
Supi das hat ja schon mal geklappt. Eine Meldung weg und schon kommt die nächste jetzt sagt der ich habe einen array Fehler
Notice: Undefined variable: endung in /var/www/web361/html/php0344a/templates/default/tpl_uploader.php on line 107

Warning: in_array() [function.in-array]: Wrong datatype for second argument in /var/www/web361/html/php0344a/templates/default/tpl_uploader.php on line 107

wäre genau die rot markierte zeile wovon du gesprochen hattest

Code

<?php
$endung = array('jpg','png','gif','bmp');
function myReadDir($path)
{
   if ($handle = opendir($path))
   {
      while (false !== ($file = readdir($handle)))
      {
         if ($file != "." && $file != "..")
         
       if (in_array(substr($file, -3), $endung))
         
         if (is_dir($path . '/' . $file))
         {
            myReadDir($path . '/' . $file);
         } else
         {
            $anzahl = count($file);
            if ($anzahl != 0)
            {
               sort($file);}
               for($i=0; $i<$anzahl; $i++)
           
            echo "<p>".$anzahl." Dateien</p>";
         }
      }
      closedir($handle);
   }
}
myReadDir("./files");
?>


 
phppower
So ich habe jetzt nochmal von vorne mit nem UrsprungsCode gegonnen, da mein alter Code ne Mischung aus php4 und 5 war und ich da einige Fehler von vornherein gemacht habe. Nun hab ich mich Schritt für Schritt ran getastet und neu angefangen und mit Buch gearbeitet und es kam das herraus:

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('pdf','doc,'txt','ppt','xst');
foreach(get_files($dir,&$endungen)  as $file) echo $file.'<br>';
?>


Funktioniert soweit auch Fehlerfrei. Jetzt komme ich aber an einen Punkt, den ich nicht im Lehrbuch finden konnte auch nicht bei google.

Diese Zeile:
Code

foreach(get_files($dir,&$endungen)  as $file) echo $file.'<br>';
gibt mir alles (Ordner Struktur und Dateien) untereinander aus soll aber garnicht. Im Prinzip möchte ich nur die Menge der vorgegebenen Endungen insgesamt ausgeben lassen. normalerweise funktioniert dies mit count oder global jedoch zählt er dann auch die Unterordner mit dabei sollen ja nur Dateien gezählt werden.

Wäre schön wenn jemand eine Idee zur Umsetzung hätte.

MFG
Bearbeitet von phppower am 17.08.2010 00000008 13:38
 
Springe ins Forum: