hilfdirselbst.ch
Facebook Twitter gamper-media
Anonym
Beiträge: 22827
24. Apr 2003, 17:45
Beitrag #1 von 7
Bewertung:
(1037 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Verzeichnisnamen ausgeben


Hallo Leute

Kann mir jemand bitte helfen?

Ich möchte einfach alle Verzeichnisnamen die in einem bestimmten Verzeichnis sind ausgeben.

Wie mache ich sowas?

Vielen Dank für Eure Hilfe.

gruss Nick
Top
 
X
Miro Dietiker
Beiträge: 699
24. Apr 2003, 18:59
Beitrag #2 von 7
Beitrag ID: #32885
Bewertung:
(1037 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Verzeichnisnamen ausgeben


Grundlegende Infos sind unter den folgenden Befehlen erhältlich.
$h = opendir($pfad) // Handle für Verzeichnis holen
readdir($h) // Lese nächste Datei aus Verzeichnis
closedir$h() // Schliesse Verzeichnishandle

Kleines Beispiel:
<?PHP
$path = '/path/to/files'
if ($handle = opendir($path))
{
echo "Directory handle: ".$handle."<BR>\n";
echo "Content:<BR>\n";

/* This is the correct way to loop over the directory. */
while (false !== ($file = readdir($handle)))
{
echo $file."<BR>\n";
if(is_dir($path.'/'.$file))
{ echo "Dir:".$file."<BR>\n"; }
else if(is_file($path.'/'.$file))
{ echo "File:".$file."<BR>\n"; }
else
{ echo "Link:".$file."<BR>\n"; }
}
?>

Zur Prüfung der Art der Files die zurückkommen nützen (siehe oben):
is_file($name)
is_dir($name)
is_link($name)

Dabei muss der Name incl. Pfad sein!

GrEeZ: Miro Dietiker
als Antwort auf: [#32875] Top
 
Anonym
Beiträge: 22827
25. Apr 2003, 22:42
Beitrag #3 von 7
Beitrag ID: #33048
Bewertung:
(1037 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Verzeichnisnamen ausgeben


Hallo Miro

Vielen Dank für das Beispiel. :-)
Doch ich habe noch eine Frage: Auf diese Art wird das . und .. Verzeichnis auch ausgegeben. Wie kann ich dies unterdrücken?

Kannst du mit bitte nochmals helfen?

Besten Dank!

Gruss omar
als Antwort auf: [#32875] Top
 
Miro Dietiker
Beiträge: 699
25. Apr 2003, 23:51
Beitrag #4 von 7
Beitrag ID: #33057
Bewertung:
(1037 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Verzeichnisnamen ausgeben


Einfach die Variable ausschliessen, falls es die Werte "." oder ".."
sind!

<?PHP
$path = '/path/to/files'
if ($handle = opendir($path))
{
echo "Directory handle: ".$handle."<BR>\n";
echo "Content:<BR>\n";

/* This is the correct way to loop over the directory. */
while (false !== ($file = readdir($handle)))
{
echo $file."<BR>\n";
if(is_dir($path.'/'.$file))
{
if(($file!='.')&&($file!='..'))
{ echo "Dir:".$file."<BR>\n"; }
}
else if(is_file($path.'/'.$file))
{ echo "File:".$file."<BR>\n"; }
else
{ echo "Link:".$file."<BR>\n"; }
}
?>

GrEeZ: Miro Dietiker
als Antwort auf: [#32875] Top
 
nick
Beiträge: 8
28. Apr 2003, 10:05
Beitrag #5 von 7
Beitrag ID: #33172
Bewertung:
(1037 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Verzeichnisnamen ausgeben


Hallo

Habe noch ein Problem.
Und zwar funktioniert das auf meinem Test Server (Win2000 mit Apache) doch auf dem externen Server funktioniert das nicht. Ich bekomme folgende Fehlermeldung:

Warning: opendir() [function.opendir]: SAFE MODE Restriction in effect. The script whose uid is 10254 is not allowed to access /usr/local/plesk/apache/vhosts/server.com/httpdocs/public owned by uid 0

Was muss ich tun, damit das funktioniert?

Vielen Dank für Eure Hilfe.

gruss Nick
als Antwort auf: [#32875] Top
 
jmraemer
Beiträge: 48
28. Apr 2003, 14:50
Beitrag #6 von 7
Beitrag ID: #33236
Bewertung:
(1037 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Verzeichnisnamen ausgeben


Hi!

Sagt der Server doch: Der Safe Mode ist an. Eine Moeglichkeit waere es ihn auszuschalten. Allerdings kann es auch sein, dass er sich einfach nur an der UID des Webservers stoert. Dann wuerde es reichen, die betroffene Datei (/das Verzeichnis) dem Webserveruser (wohl UID 10254) zu geben. Sollte als root mit 'chown <name des Webserverusers> <Datei>' gehen. Wenn es ein Verzeichnis ist: chown -r <name...

hth

Jan-Martin
als Antwort auf: [#32875] Top
 
Miro Dietiker
Beiträge: 699
28. Apr 2003, 22:00
Beitrag #7 von 7
Beitrag ID: #33273
Bewertung:
(1037 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Verzeichnisnamen ausgeben


Unter Umständen kann der Safemode so konfiguriert sein, dass nur
Unterordner des Scriptordners mit opendir geöffnet werden können.

Schliesslich kannst Du so oder so nichts machen und musst Dich mit
diesem Problem an deinen Provider wenden!
Die werden wissen um was es geht und eine Lösung parat haben, und
sonst wäre das ein trauriges Bild.

GrEeZ: Miro Dietiker
als Antwort auf: [#32875] Top
 
X