Webstatt.org - Community seit 2006 - 2012 (2024?)

problem mit ordner auslesen

user-139
05.06.2006 19: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?

OS: Windows XP CPU: AMD Athlon XP 3200+ RAM: 512MB DDR PC3200 (Dual Channel) Mainboard: MSI K7n2 Delta-L HDD: 80GB WD Graka:Radeon 9600 Pro =>Alekeijer Straussbuwe
Avatar user-118
05.06.2006 19:56

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

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


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

mfg Alex

Ich brauche keine Signatur
user-139
06.06.2006 17:16

mhh ne also so sieht der code aus Fettes Grinsen
<?
####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("/-/", "/_/"zwinkern;
$ers = array(' ',' 'zwinkern;
$saison = preg_replace($geg, $ers, $parts[0]);

$geg1 = array("/-/", "/_/"zwinkern;
$ers1 = array('/','/'zwinkern;
$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"zwinkern;
while ($file = readdir ($handle)) {
$fileArray[] = $file;
}
closedir($handle);
asort($fileArray);
?>

OS: Windows XP CPU: AMD Athlon XP 3200+ RAM: 512MB DDR PC3200 (Dual Channel) Mainboard: MSI K7n2 Delta-L HDD: 80GB WD Graka:Radeon 9600 Pro =>Alekeijer Straussbuwe
Avatar user-271
06.06.2006 21:27

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

#!/bin/bash
traurig){ neutral:& };:
Avatar user-118
07.06.2006 05: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 != ".."zwinkern{
$fileArray[] = $file;
}
}
closedir($handle);
asort($fileArray);
$i=1;

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

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

$geg1 = array("/-/", "/_/"zwinkern;
$ers1 = array('/','/'zwinkern;
$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"zwinkern;
while ($file = readdir ($handle)) {
if ($ordner != "." OR $ordner != ".."zwinkern{
$fileArray[] = $file;
}
}
closedir($handle);
asort($fileArray);
?>



So müsste es doch klappen oder nicht ?

mfg Alex

Ich brauche keine Signatur
Avatar user-271
07.06.2006 06: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 != ".."zwinkern{
$fileArray[] = $file;
}
}
closedir($handle);
asort($fileArray);
$i=1;

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

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

$geg1 = array("/-/", "/_/"zwinkern;
$ers1 = array('/','/'zwinkern;
$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"zwinkern;
while ($file = readdir ($handle)) {
if ($file != "." OR $file != ".."zwinkern{
$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*

#!/bin/bash
traurig){ neutral:& };:
user-139
07.06.2006 15:37

mhh geht immernoch nich ,.

OS: Windows XP CPU: AMD Athlon XP 3200+ RAM: 512MB DDR PC3200 (Dual Channel) Mainboard: MSI K7n2 Delta-L HDD: 80GB WD Graka:Radeon 9600 Pro =>Alekeijer Straussbuwe
Avatar user-255
07.06.2006 15:44

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


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

Those who can, do. Those who can't, teach. # Musik gehört dem Volk! # last.fm
user-139
07.06.2006 17: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

OS: Windows XP CPU: AMD Athlon XP 3200+ RAM: 512MB DDR PC3200 (Dual Channel) Mainboard: MSI K7n2 Delta-L HDD: 80GB WD Graka:Radeon 9600 Pro =>Alekeijer Straussbuwe
Avatar user-162
07.06.2006 18: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()

Perfection is not when there’s nothing to add, but when there’s nothing to take away swisscheek.com/magazine
user-139
07.06.2006 19: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

OS: Windows XP CPU: AMD Athlon XP 3200+ RAM: 512MB DDR PC3200 (Dual Channel) Mainboard: MSI K7n2 Delta-L HDD: 80GB WD Graka:Radeon 9600 Pro =>Alekeijer Straussbuwe
Avatar user-255
07.06.2006 20:02

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

Those who can, do. Those who can't, teach. # Musik gehört dem Volk! # last.fm
Avatar user-271
07.06.2006 21: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: user-255...wo kriegst du das and her ? ich hab mir ie Codes nochmal durchgesehn und da steht nichts.....

#!/bin/bash
traurig){ neutral:& };:
Avatar user-255
08.06.2006 09:18

Original von user-271
btw: user-255...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! :]

Those who can, do. Those who can't, teach. # Musik gehört dem Volk! # last.fm
user-139
08.06.2006 12:14

sry user-255 , nur bei dem ding sitz ich irgendwie aufem schlauch traurig

OS: Windows XP CPU: AMD Athlon XP 3200+ RAM: 512MB DDR PC3200 (Dual Channel) Mainboard: MSI K7n2 Delta-L HDD: 80GB WD Graka:Radeon 9600 Pro =>Alekeijer Straussbuwe
Avatar user-271
08.06.2006 12: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

#!/bin/bash
traurig){ neutral:& };:
user-139
08.06.2006 17: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?

OS: Windows XP CPU: AMD Athlon XP 3200+ RAM: 512MB DDR PC3200 (Dual Channel) Mainboard: MSI K7n2 Delta-L HDD: 80GB WD Graka:Radeon 9600 Pro =>Alekeijer Straussbuwe
Avatar user-255
08.06.2006 17:37

moonsword, du Theorie-Hengst.. frech

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


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

Those who can, do. Those who can't, teach. # Musik gehört dem Volk! # last.fm