Hallo! Hab ein Problem. Ich muss ein Verzeichnis auslesen und diese in einer klassischen HTML-Tabelle anzeigen lassen.
Funktioniert soweit auch. Allerdings krieg ich es nicht gebacken, das die Ansicht in Form von einer klassischen Tabellenausgabe dargestellt wird. Die TD wird immer unterhalb des Heads seitlich dargestellt.
Hat jemand eine Idee?
PHP-Code:
<?php
class LimitRecursiveIteratorIterator extends RecursiveIteratorIterator {
protected $depth_limit;
public function __construct($it, $mode = RecursiveIteratorIterator::CHILD_FIRST, $depth_limit = -1) {
parent::__construct($it, $mode);
$this->depth_limit = $depth_limit;
}
public function next() {
parent::next();
if ($this->getDepth() == $this->depth_limit) {
while ($this->getSubIterator()->valid())
$this->getSubIterator()->next();
parent::next();
}
}
}
class DirectoriesOnlyIterator extends FilterIterator implements RecursiveIterator {
public function __construct($path) {
parent::__construct(new RecursiveDirectoryIterator($path));
}
public function accept() {
return $this->getInnerIterator()->hasChildren();
}
public function hasChildren() {
return $this->getInnerIterator()->hasChildren();
}
public function getChildren() {
return new self($this->getInnerIterator()->getPathname());
}
}
$basedir = '.';
$max_depth = 3;
$mode = RecursiveIteratorIterator::SELF_FIRST;
$it = new LimitRecursiveIteratorIterator(new DirectoriesOnlyIterator($basedir), $mode, $max_depth);
print "Ausgabe Dir";
?>
<table border="1">
<?php
foreach ($it as $key => $value) {
if ($it->getDepth() == 1) {
$ausgabe = (is_array($value)) ? $key : $value;
echo "<tr><th>" . substr(strrchr($ausgabe, "/"), 1) . "</th></tr>";
} elseif ($it->getDepth() == 2) {
$ausgabe = (is_array($value)) ? $key : $value;
echo "<td>" . substr(strrchr($ausgabe, "/"), 1) . "</td>";
}
}
?>
</table>
Wenn ich die Tabellenausgabe ändere
PHP-Code:
foreach ($it as $key => $value)
{
if ($it->getDepth() ==1) {
$ausgabe = (is_array( $value )) ? $key : $value;
echo "<tr>";
echo "<th>" . substr(strrchr($ausgabe, "/"), 1) . "</th>";
echo "</tr>";
} elseif ($it->getDepth() ==2) {
$ausgabe = (is_array( $value )) ? $key : $value;
echo "<tr><td>" . substr(strrchr($ausgabe, "/"), 1) . "</td></tr>";
}
}
Dann steht die einzelnen THs mit den TDs generell untereinander...
Vielen Dank!
Peter