Willkommen in der Webstatt Zum Webstatt Blog und Stories
Bonze 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?
Al3x0r Al3x0r 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

Bonze 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);
?>

nuit nuit am 06.06.06 23:27

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

Al3x0r Al3x0r 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

nuit nuit 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*

Bonze am 07.06.06 17:37

mhh geht immernoch nich ,.

milahu milahu 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!';
}

Bonze 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

der_nic der_nic 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()

Bonze 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

milahu milahu 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..

nuit nuit 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: milahu...wo kriegst du das and her ? ich hab mir ie Codes nochmal durchgesehn und da steht nichts.....

milahu milahu am 08.06.06 11:18

Quote
Original von nuit
btw: milahu...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! :]

Bonze am 08.06.06 14:14

sry milahu , nur bei dem ding sitz ich irgendwie aufem schlauch :(

nuit nuit 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

Bonze 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?

milahu milahu 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