Autor Zpráva
flary
Profil
Zdravím,
mám skript, který mi projde složku a vybere z ní všechny soubory + složky. Soubory přidá do pole pokud se nejmenují Index.php a složku přidá do pole pokud se nejmenuje "." nebo ".." nebo její začátek není "0". Pak prochází obě pole se soubory či složkami a provede znovu totéž. Ve složkách které jsou v poli má spočítat počet souborů, které vyhovují výše uvedeným podmínkám a pak počet složek, které vyhovují podmínkám. Na soubory to funguje, ale na složky ne. Kód je trochu neohrabaný, ale já se bojím do něj víc sáhnout, abych to celé nepokonil. Tady je:
if($handle = opendir(".")){
  $arts = array(); $dirs = array();
  while($file = readdir($handle)){
    if(is_dir($file) && $file != ".." && $file != "." && substr($file, 0, 1) != "0"){
      $dirs[count($dirs)] = $file;
    }
    if(!is_dir($file) && substr($file, strlen($file) - 4) == ".php" && $file != "Index.php"){
      $arts[count($arts)] = $file;
    }
  }
  sort($arts); sort($dirs); reset($arts); reset($dirs); $arts = array_reverse($arts); closedir($handle);
  echo "<h2>Rubriky</h2>\n";
  echo "<table border=0 cellpadding=0 cellspacing=0 width=100%>\n";
  $typeno = "0";
  while(list($key, $val) = each($dirs)){
    $val2 = "eda";
    $subarts = array(); $subdirs= array();
    if($subhandle = opendir($val)){
      while($subfile = readdir($subhandle)){
        if(is_dir($subfile) && $subfile != ".." && $subfile != "." && substr($subfile, 0, 1) != "0"){
          $subdirs[count($subdirs)] = $subfile;
        }
        if(!is_dir($subfile) && substr($subfile, strlen($subfile) - 4) == ".php" && $subfile != "Index.php"){
          $subarts[count($subarts)] = $subfile;
        }
      }
    }
    sort($subarts); sort($subdirs); reset($subarts); reset($subdirs); closedir($subhandle);
    $val2 = "Rubrika obsahuje " . count($subarts) . " článků a " . count($subdirs) . " podrubrik.";
    echo "<tr class='Type$typeno'><td width=50 align=center valign=top><img width=48 height=48 src='$relp/Style/Icons/Folder.png'></td><td width=100%><strong><a href='$val/Index.php'>$val</a></strong> <span class='time'>" . date("r", filemtime($val)) . "</span><br><em class='Desc'>$val2</em></td></tr>";
    $typeno = ($typeno == "0") ? "1" : "0";
  }
  if(count($dirs) == 0){echo "<tr><td width=50 align=center valign=top><img width=48 height=48 src='$relp/Style/Icons/Empty.png'></td><td eidth=100%><em>Tato rubrika neobsahuje žádné podrubriky.</em></td></tr>";}
  echo "</table>";
  echo "<h2>Články</h2>\n";
  echo "<table border=0 cellpadding=0 cellspacing=0 width=100%>";
  $typeno = "0";
  while(list($key, $val) = each($arts)){
    $val2 = ""; $val3 = "";
    $fo = fopen($val, "r");
    $fr = fread($fo, filesize($val));
    fclose($fo); $fb = $fr;
    $fr = explode("</H1>", $fr); $fr = explode("<H1>", $fr[0]); $val2 = $fr[1];
    $fb = explode("</P>", $fb); $fb = explode("<P>", $fb[0]); $val3 = $fb[1]; $val3 = substr($val3, 0, 255) . "...";
    echo "<tr class='Type$typeno'><td width=50 align=center valign=top><img width=48 height=48 src='$relp/Style/Icons/Article.png'></td><td width=100%><strong><a href='$val'>$val2</a></strong> <span class='time'>" . date("r", filemtime($val)) . "</span><br><em class='Desc'>$val3</em><a href='$val'>více</a></td></tr>";
    $typeno = ($typeno == "0") ? "1" : "0";
  }
  if(count($arts) == 0){echo "<tr><td width=50 align=center valign=top><img width=48 height=48 src='$relp/Style/Icons/Empty.png'></td><td eidth=100%><em>Tato rubrika neobsahuje žádné články.</em></td></tr>";}
  echo "</table>";
}

a výsledkem jsou dvě tabulky, na každou z nich je H2 a v těch tabulkách v té první jsou ty složky, pod jejichž názvy je uveden počet souborů (ččlánků) v nich a taky počet rubrik (složek) v nich. Ty rubriky však nejdou. No a v druhé tabulce jsou vypsány ty soubory-články.

Předem dík za každou pomoc!

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: