PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Verzeichnis auslesen (dir) ohne index.php anzeigen



Individuum
04-06-2003, 20:51
Hi, ich hab mal wieder ein Problem.
Undzwar möchte ich ein Verzeichnis auslesen, dass klappt auch ganz gut. Doch sobald ein Verzeichnis mit einem Buchstaben vor I anfängt wird die index.php auch angezeigt. Wie schaffe ich es das dies nicht geschiet, habe schon verschiedenes ausprobiert.
Könnt ihr mir sagen wo der Fehler liegt?
Das ist der Auszug, sieht ein bischen komisch aus, da ich schon ein bischen mit der index.php rumgebastelt habe ;D.


# Verzeichnise
$verz = shell_exec("dir -A -m");
#$verz_neu = strstr($verz," ");
#$verz_array = explode(" ",$verz_neu);
$verz_array = explode(",",$verz);
$verz_laenge = sizeof($verz_array);
# Fuer Jedes Verzeichnis
# Versuch Indexphp wegzubekommen ^^
for($i=0; $i<$verz_laenge; $i++)
{
# Indexphp Rausfiltern
if ($verz_array[$i] == "index.php") $verz_array[$i] = "";
}
$verz_laenge = sizeof($verz_array);
for($i=1; $i<$verz_laenge; $i++)
{
# Anzahl der Bilder fuer MAX
$u_verz = shell_exec("dir/$verz_array[$i]");
$u_verz_array = explode(" ",$u_verz);
$u_verz_laenge = sizeof($u_verz_array);
echo $u_verz_laenge;
$u_verz_laenge = $u_verz_laenge + 1;
# Ausgabe Link
echo "<a href=\"index.php?dir=" . $verz_array[$i] . "&img=1&action=view&max=" . $u_verz_laenge . "\">$verz_array[$i]</a> <br>";
}


Danke im Voraus.....

basi
04-06-2003, 21:43
Das was du suchst:


$hdl = opendir($path);
while ($dir = readdir($hdl))
{
if ($dir != "index.php" && !is_dir($dir))
}


Was dir vielleicht helfen kann (mein index-Script):

<?
/* Funktiondeklaration */
function getPath() //Gibt den aktuellen PFad zurpck
{
$pathexp = explode("/",(getenv("SCRIPT_FILENAME")));
$res = (count($pathexp) -1);
for ($i=1;$i < $res; $i++) // Schleife
{
$path = $path . "/". $pathexp[$i]; // Setze zerschnittene Teile zu Verzeichnisbeschr. zusammen
}
return $path;
}

function getIndex($dir) //Index ermitteln
{
if (file_exists("$dir/")==TRUE) {
$link = "$dir/"; }
if (file_exists("$dir/htdocs/")==TRUE) {
$link = "$dir/htdocs/"; }
if (file_exists("$dir/index.htm")==TRUE) {
$link = "$dir/index.htm"; }
if (file_exists("$dir/index.html")==TRUE) {
$link = "$dir/index.html"; }
if (file_exists("$dir/index.php")==TRUE) {
$link = "$dir/index.php"; }
if (file_exists("$dir/htdocs/index.htm")==TRUE) {
$link = "$dir/htdocs/index.htm"; }
if (file_exists("$dir/htdocs/index.html")==TRUE) {
$link = "$dir/htdocs/index.html"; }
if (file_exists("$dir/htdocs/index.php")==TRUE) {
$link = "$dir/htdocs/index.php"; }
return $link;
}
?>

<body>
<table align='center' border="0" width="750" bgcolor="#211140">
<tr><td width="100%" align="center"><font class='headline'>
<hr><b>Derzeite Projekte:</b><hr>
<table align='center' border="0" width="500" bgcolor="#336699">

<!--- Beginn des Ordner auszählens --->
<?
if (getenv("REMOTE_ADDR") == "127.0.0.1") echo "<tr><td><a class='Klein' href=" . getIndex(".admin") . "><b>Admin</b></a></td></tr> ";
/* Main Code */
$path= getPath();
$hdl = opendir($path);
while ($dir = readdir($hdl))
{
if (is_dir($dir) && $dir != "." && $dir != ".." && substr($dir,0,1) != ".") {
$verzs[$z] = $dir;
$z++;

}
}

asort($verzs);
foreach($verzs as $verz)
{ ?> <tr><td>
<a class='Klein' href="<? echo getIndex($verz); ?>"><? echo $verz ; ?></a>
</td></tr> <?
}

?>
<!--- Ende des Ordner auszählens --->

Individuum
05-06-2003, 16:01
Danke, ich habs jetzt so gelöst:


function getPath() //Gibt den aktuellen PFad zurpck
{
$pathexp = explode("/",(getenv("SCRIPT_FILENAME")));
$res = (count($pathexp) -1);
for ($i=1;$i < $res; $i++) // Schleife
{
$path = $path . "/". $pathexp[$i]; // Setze zerschnittene Teile zu Verzeichnisbeschr. zusammen
}
return $path;
}

$path= getPath();
$hdl = opendir($path);
while ($dir = readdir($hdl))
{
if (is_dir($dir) && $dir != "." && $dir != ".." && substr($dir,0,1) != ".")
{
$verzs[$z] = $dir;
$z++;
}
}

asort($verzs);
foreach($verzs as $verz)
{
echo "<a href=\"index.php?dir=" . $verz . "&img=1&action=view&max=" . $verz_u_laenge . "\">$verz</a> <br>";
# $verz_u_laenge anzahl der bilder die in dem UNTERverzeichnis sind! > Fehlt noch!!
}
}

Jetzt habe ich aber noch ein Problem:
Und zwar brauche ich die Anzahl der .JPG die in dem Verzeichnis $verz sind und dann in $verz_u_laenge gespeichert werden.
Ich weiß nicht in wie weit und wo ich deine Funktion modifiziern muss damit ich einen dir bekomme und aus diesen dann mit sizeof die anzahl der dateien bekommen.

Hatte schon mal überlegt diese:



while ($dir = readdir($hdl))
{
if (is_dir($dir) && $dir != "." && $dir != ".." && substr($dir,0,1) != ".")
{
$verzs[$z] = $dir;
$z++;
}
}


auf das unterverzeichnis anzuwenden mit geändertem $dir quasie das hdl ändern, das geht aber leider nicht.

Kann mir bitte einer sagen wo bzw. wie ich die funktionen ändern nutzen muss, da ich von der dir geschichte keine Ahnung habe.

basi
05-06-2003, 16:42
$hdl = opendir($verzeichnis);
while ($img = readdir($hdl))
{
$bild = explode(".",$img); // Zerschneide Bildnamen am Punkt (.)
$res = (count($bild) - 1); // Analysiere Länge der zerschnittenen Teile des Bildnamen
if (!is_dir($img) && $bild[$res] == "jpg") {
$i++;
$image[$i] = $img;
}

}

echo count($image);

Individuum
05-06-2003, 17:42
Also für alle die es interesiert:


function getPath() //Gibt den aktuellen PFad zurpck
{
$pathexp = explode("/",(getenv("SCRIPT_FILENAME")));
$res = (count($pathexp) -1);
for ($i=1;$i < $res; $i++) // Schleife
{
$path = $path . "/". $pathexp[$i]; // Setze zerschnittene Teile zu Verzeichnisbeschr. zusammen
}
return $path;
}

$path= getPath();
$hdl = opendir($path);
while ($dir = readdir($hdl))
{
if (is_dir($dir) && $dir != "." && $dir != ".." && substr($dir,0,1) != ".")
{
$verzs[$z] = $dir;
$z++;
}
}

asort($verzs);
foreach($verzs as $verz)
{
$hdl = opendir($verz);
while ($img = readdir($hdl))
{
$bild = explode(".",$img); // Zerschneide Bildnamen am Punkt (.)
$res = (count($bild) - 1); // Analysiere Länge der zerschnittenen Teile des Bildnamen
if (!is_dir($img) && $bild[$res] == "JPG")
{
$i++;
$image[$i] = $img;
}
}

$verz_u_laenge = count($image);

echo "<a href=\"index.php?dir=" . $verz . "&img=1&action=view&max=" . $verz_u_laenge . "\">$verz</a> <br>";
$image = "";
$verz_u_laenge = 0;
}


Und @ basi ein fettes danke, hab dich im Copyright verewigt *g*

basi
05-06-2003, 17:46
Danke dir, wo kann ich das in Aktion sehen?

Individuum
05-06-2003, 18:02
wenn's fertig is schick ich dir mal ne pm mit dem link, im moment siehts nämlich noch shice aus, aber bin ja fleisig am arbeiten. *g*