Willkommen in der Webstatt
User-1 am 05.06.06 21:44

also hab ein script welches den ordner ausliest und dessen unterordner, und dann die dateien geordnet als links ausgibt, so jetzt hab ich das problem das es mir beim kategorien auswählen(jeder ordner is ne kategorie) auch dessen unterordner anzeigt also in meiner link liste auch sowas wie . und .. vorkommt, wie bekomme ich soetwas weg?

netcup.de Warum gibt es hier Werbung?
User-2 am 05.06.06 21:56

An der Stelle, wo du die Ordner als Link ausgibst setzt du einfach ein

if ($ordner != "." OR $ordner != ".."){
// Deine Ordnerausgabe
}


das müsste das Problem eig. lösen, oder?

mfg Alex

User-1 am 06.06.06 19:16

mhh ne also so sieht der code aus :D
<?
####funktionen
$ordner = "mitteilungen/pdf/"; //ordner den man auslesen möchte
$url = "http://localhost/projects/rene/"; //url zu den treibern ohne "/" am ende!
$handle = opendir($ordner);
while ($file = readdir ($handle)) {
$fileArray[] = $file;
}
closedir($handle);
asort($fileArray);
$i=1;

foreach($fileArray as $row) {
###entfernen von sonderzeichen##
$parts = explode('_',$row);

$geg = array("/-/", "/_/");
$ers = array(' ',' ');
$saison = preg_replace($geg, $ers, $parts[0]);

$geg1 = array("/-/", "/_/");
$ers1 = array('/','/');
$saison1 = preg_replace($geg, $ers, $parts[1]);

$name = "$saison $saison1/$parts[2]";

if($i>2) {
echo"<a href='?show=$saison1/$parts[2]'>$name</a><br>";
}
++$i;
}


if($_GET[show])
{
//ordner den man auslesen möchte
$parts = explode('/',$_GET[show]);
$partsgefuege = "saison_$parts[0]_$parts[1]";
$handle = opendir("$ordner$partsgefuege");
while ($file = readdir ($handle)) {
$fileArray[] = $file;
}
closedir($handle);
asort($fileArray);
?>

User-3 am 06.06.06 23:27

mach halt in die beiden while schleifen, den Code rein, der dir oben präsentiert wird *fg*

User-2 am 07.06.06 07:42

<?
####funktionen
$ordner = "mitteilungen/pdf/"; //ordner den man auslesen möchte
$url = "http://localhost/projects/rene/"; //url zu den treibern ohne "/" am ende!
$handle = opendir($ordner);
while ($file = readdir ($handle)) {
if ($ordner != "." OR $ordner != ".."){
$fileArray[] = $file;
}
}
closedir($handle);
asort($fileArray);
$i=1;

foreach($fileArray as $row) {
###entfernen von sonderzeichen##
$parts = explode('_',$row);

$geg = array("/-/", "/_/");
$ers = array(' ',' ');
$saison = preg_replace($geg, $ers, $parts[0]);

$geg1 = array("/-/", "/_/");
$ers1 = array('/','/');
$saison1 = preg_replace($geg, $ers, $parts[1]);

$name = "$saison $saison1/$parts[2]";

if($i>2) {
echo"<a href='?show=$saison1/$parts[2]'>$name</a><br>";
}
++$i;
}


if($_GET[show])
{
//ordner den man auslesen möchte
$parts = explode('/',$_GET[show]);
$partsgefuege = "saison_$parts[0]_$parts[1]";
$handle = opendir("$ordner$partsgefuege");
while ($file = readdir ($handle)) {
if ($ordner != "." OR $ordner != ".."){
$fileArray[] = $file;
}
}
closedir($handle);
asort($fileArray);
?>



So müsste es doch klappen oder nicht ?

mfg Alex

User-3 am 07.06.06 08:05

*gäääääääh*
<?
####funktionen
$ordner = "mitteilungen/pdf/"; //ordner den man auslesen möchte
$url = "http://localhost/projects/rene/"; //url zu den treibern ohne "/" am ende!
$handle = opendir($ordner);
while ($file = readdir ($handle)) {
if ($file != "." OR $file != ".."){
$fileArray[] = $file;
}
}
closedir($handle);
asort($fileArray);
$i=1;

foreach($fileArray as $row) {
###entfernen von sonderzeichen##
$parts = explode('_',$row);

$geg = array("/-/", "/_/");
$ers = array(' ',' ');
$saison = preg_replace($geg, $ers, $parts[0]);

$geg1 = array("/-/", "/_/");
$ers1 = array('/','/');
$saison1 = preg_replace($geg, $ers, $parts[1]);

$name = "$saison $saison1/$parts[2]";

if($i>2) {
echo"<a href='?show=$saison1/$parts[2]'>$name</a><br>";
}
++$i;
}


if($_GET[show]) {
//ordner den man auslesen möchte
$parts = explode('/',$_GET[show]);
$partsgefuege = "saison_$parts[0]_$parts[1]";
$handle = opendir("$ordner$partsgefuege");
while ($file = readdir ($handle)) {
if ($file != "." OR $file != ".."){
$fileArray[] = $file;
}
}
closedir($handle);
asort($fileArray);
?>



ps.: ich ab nicht wegen dir gegänht *fg* ich bin nur hundemüde...hab heute noch nicht geschlafen *fg*

User-1 am 07.06.06 17:37

mhh geht immernoch nich ,.

User-4 am 07.06.06 17:44

Jaja, die Logik...
if ($file != "." and $file != "..")

Viel 3113373/2 isses übrigens, die Schleife weiterlaufen zu lassen:
{
if ($file == '.' || $file == '..')
continue;
print 'aetsch!';
}

User-1 am 07.06.06 19:18

raff nix mehr habs eben abgeändert bekomm jetzt aber direkt diese meldung !

aetsch!aetsch!aetsch!
Warning: asort() expects parameter 1 to be array, null given in E:\xampp\xampp\htdocs\projects\rene\index.php on line 23

Warning: Invalid argument supplied for foreach() in E:\xampp\xampp\htdocs\projects\rene\index.php on line 26

User-5 am 07.06.06 20:19

nun ja wenn halt alle $file's durch die if() prüfung fallen, ist der Array am Schluss leer... und wenn du dann die Funktion asort() auf den leeren Array anwenden willst, gibts ein Fehler weil der eben leer ist.
Kannst du verhindert indem du entweder prüfst ob er leer ist bevor du asort() anwendest oder du machst ein @ vor das asort()

User-1 am 07.06.06 21:55

ja klar das asort bekomme ich weg jedoch nich das aetsch!aetsch!aetsch!
Warning: Invalid argument supplied for foreach() in E:\xampp\xampp\htdocs\projects\rene\index.php on line 26

User-4 am 07.06.06 22:02

Du sollst auch nicht einfach blind kopieren, was du vorgesetzt bekommst. Schalt dein Hirn ein und setz meinen Tipp um..

User-3 am 07.06.06 23:29

arg....ich gehöre abgeschelt...weil ich das nicht gesehn hab...ja es kann nicht gleichzeitig . und .. sein..deshalb muss ein || oder ein OR rein, statt dem and...

arg...wie kann ich sowas nur übersehn...ich muss gestehn, ich habs auch nur kopiert *fg*


btw: xyz-145...wo kriegst du das and her ? ich hab mir ie Codes nochmal durchgesehn und da steht nichts.....

User-4 am 08.06.06 11:18

Quote
Original von xyz-161
btw: xyz-145...wo kriegst du das and her ? ich hab mir ie Codes nochmal durchgesehn und da steht nichts.....

..weil da bisher immer or stand und das ist in dem Kontext falsch -- moep! :]

User-1 am 08.06.06 14:14

sry xyz-145 , nur bei dem ding sitz ich irgendwie aufem schlauch :(

User-3 am 08.06.06 14:39

ja ich habs echt falsch verstanden...

wenn du ein $file != '.' OR $file != '..'

dann sähe die tabelle für . oder . so aus:
$file != '.' OR $file != '..'
. | false | true
.. | true | false


also . und .. kommen durch ;D wenn man die durch ein "AND" verknüpft kommt keins mehr durch *fg*
$file != '.' AND $file != '..'
. | true | true
.. | true | true

User-1 am 08.06.06 19:34

achso was mir noch aufgefallen ist , es werden diese punkte und 3 unterordner mit angeziegt ,. irgendwie raff ich das nich was ihr hier schreibt ? was soll es heffen mein array (mein ausgelsenes zu überoprüfen ob ein . oder .. drinj is?

User-4 am 08.06.06 19:37

moonsword, du Theorie-Hengst.. :P

Die Sache is ganz einfach:
<?php
$h = opendir('ka/');
while ($f = readdir($h)) {
if ($f == '.' || $f == '..')
continue;
print $f.'<br />';
}
closedir($h);
?>


oder der 'modern way':
<?php
foreach (glob('ka/*.*') as $f) {
print $f.'<br />';
}
?>

Creative Commons Lizenzvertrag
Alle Inhalte des Webstatt-Archivs stehen unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.

Impressum & Kontakt