php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2004

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 23.07.2004, 16:44  
Erfahrener Benutzer
 
Registriert seit: 23.07.2004
Beiträge: 100
Tutti
Standard Probleme beim Verzeichnis auslesen.

Seid gegrüßt,

eben stecke ich in einem Problem auf dessen Lösung ich nicht komme.

Ich möchte aus einem Verzeichnis nur die html-Dateien auflisten
und dann als Link ausgeben.
Weder Verzeichnisse, andere Dateien noch . und .. sollen darin vorkommen.

Code:
<?php

   $verz=opendir ('content');
   while ($file = readdir ($verz)) {
      if(substr("$file", -5)==".html" && $file != "." && $file != "..")
      
      $file = str_replace(".html", "", $file);
         echo ''.$file.'
';
   }
   closedir($verz);
?>
Die Schleife macht auch was sie soll
if(substr("$file", -5)==".html" && $file != "." && $file != "..")

füge ich jetzt aber
$file = str_replace(".html", "", $file);
hinzu weil ich das .html weder im URL noch im Namen der Links haben möchte erscheinen wieder die Ebenen . und ..
Wo liegt der Fehler?

Bsp.
Liegen die Dateien beispiel1.html und beispiel2.htm im ordner content
soll das script den Ordner content auslesen und
Code:
<a href="index.php?action=beispiel1>beispiel1</a>

<a href="index.php?action=beispiel2>beispiel2</a>
ausgeben.

Grüße
Tutti
Tutti ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 23.07.2004, 16:53  
Erfahrener Benutzer
 
Registriert seit: 01.12.2003
Beiträge: 4.113
supertramp
Standard

wo liegt denn der Fehler?
Wie sieht denn die Ausgabe aus?
Was macht er denn, was er nicht soll?
__________________
Aufstrebend, kompetent und werbefrei.
www.developers-guide.net
supertramp ist offline  
Alt 23.07.2004, 17:24  
Erfahrener Benutzer
 
Registriert seit: 23.07.2004
Beiträge: 100
Tutti
Standard

Naja sobald ich $file = str_replace(".html", "", $file); einfüge, um das .html aus den variablen zu bekommen listet das Script das Verzeichnis
wieder mit . und .. auf und auch andere Dateien als .html

mein Verzeichnis sieht etwa so aus

/content/
|
--/ein ordner/
|
---beispiel1.html
|
--beispiel2.html
|
--Textdatei.txt

Es sollen darus nur die html-Dokumente gelesen werden
alles andere wird ignoriert

ohne
$file = str_replace(".html", "", $file);
klappt das auch jedoch

ich muss aber irgendwie das .html aus der Variable $file bekommen
damit der link
so aufgebaut wird
Code:
<a href="index.php?action=beispiel1>beispiel1</a>
füge ich jetzt
$file = str_replace(".html", "", $file);
in das script mit ein wird der ordner /ein ordner/ die Textdatei.txt
und die Verzeichnisebenen . und .. mit aufgelistet

ich brauche also eine alternative zu $file = str_replace(".html", "", $file);
Tutti ist offline  
Alt 23.07.2004, 19:31  
Erfahrener Benutzer
 
Registriert seit: 23.07.2004
Beiträge: 100
Tutti
Standard

Ein anderer Weg aber so klappts

PHP-Code:
<?php

foreach (glob("content/*.html") as $file) {

    
$search = array('content/''.html'); 

       
$file str_replace($search""$file);
       
    echo 
'[url="index.php?action='.$file.'"]'.$file.'[/url]
'
;
       
}
?>
Tutti ist offline  
Alt 23.07.2004, 20:08  
Erfahrener Benutzer
 
Registriert seit: 01.12.2003
Beiträge: 4.113
supertramp
Standard

schade, dass ich dir nicht helfen konnte, aber wie es scheint hast du es ja auch schon gelöst... :wink:
__________________
Aufstrebend, kompetent und werbefrei.
www.developers-guide.net
supertramp ist offline  
Alt 23.07.2004, 20:40  
Erfahrener Benutzer
 
Registriert seit: 18.07.2004
Beiträge: 2.162
PHP-Kenntnisse:
Fortgeschritten
Basti
Standard

...wie wäre es denn, wenn du dir einfach angewöhnen würdest, bedingte Anweisungen in geschweifte Klammern zu setzen?

Und noch ein anderer Bug:
while ($entry = readfile ($dir)) ergibt false, wenn da eine Datei den Namen '0' trägt! Überdies ist es unnötig die Einträge '.' und '..' rauszufiltern, da diese die Bedingung, mit '.html' zu enden ohnehin nicht erfüllen.

glob() kannte ich noch nicht, danke! *g

Basti
Basti ist offline  
Alt 23.07.2004, 23:11  
Erfahrener Benutzer
 
Registriert seit: 23.07.2004
Beiträge: 100
Tutti
Standard

Zitat:
Überdies ist es unnötig die Einträge '.' und '..' rauszufiltern, da diese die Bedingung, mit '.html' zu enden ohnehin nicht erfüllen.
Stimmt, das leuchtet ein aber warum erscheinen sie wieder sobald ich mit str_replace() versuche das .html zu löschen?

Ja glob() ist ne tolle sache, läuft im Gegensatz zu opendir() aber nur im lokalen Filesystem aber für meine Zwecke hats ja gereicht.
Tutti ist offline  
Alt 24.07.2004, 14:57  
Erfahrener Benutzer
 
Registriert seit: 18.07.2004
Beiträge: 2.162
PHP-Kenntnisse:
Fortgeschritten
Basti
Standard

> aber warum erscheinen sie wieder sobald ich mit str_replace() versuche das .html zu
> löschen?

Schau dir deinen Code doch mal an:

PHP-Code:
if(substr("$file", -5)==".html" && $file != "." && $file != "..")
     
      
$file str_replace(".html"""$file);
         echo 
'[url="index.php?action='.$file.'"]'.$file.'[/url]
'

Das entspricht ganz genau folgendem Code:
PHP-Code:
if(substr("$file", -5)==".html" && $file != "." && $file != "..") {
    
$file str_replace(".html"""$file);
}
echo 
'[url="index.php?action='.$file.'"]'.$file.'[/url]
'

Nochmal: bedingter Code (abgesehen natürlich vom ternären Operator) sollte immer in geschweifte Klammern, damit erspart man sich solche Fehler. Klar, ist Gemackssache wird man mir hier entgegnen - okay.

Basti
Basti ist offline  
Alt 26.07.2004, 15:41  
Erfahrener Benutzer
 
Registriert seit: 23.07.2004
Beiträge: 100
Tutti
Standard

Geb mich geschlagen
Werde in Zukunft auch mehr darauf achten.

Danke dir
Tutti
Tutti ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Verzeichnis auslesen -> Dateinamen in Array quoba PHP Tipps 2008 11 29.04.2008 16:21
Beim Verzeichnis auslesen Dateinamen unterscheiden Teela PHP Tipps 2008 17 28.04.2008 22:05
verzeichnis auslesen LP PHP Tipps 2007 11 30.03.2007 13:11
Verzeichnis auslesen... madSoul PHP Tipps 2006 9 03.04.2006 16:01
Verzeichnis auslesen.. ????? chrisbog PHP Tipps 2006 3 29.01.2006 21:54
Verzeichnis auslesen saibot PHP Tipps 2005-2 8 09.08.2005 12:22
[Erledigt] Verzeichnis auslesen / redundante Daten PHP Tipps 2005 6 25.05.2005 13:28
verzeichnis auslesen... StartUpBoy PHP Tipps 2005 13 29.03.2005 15:54
Probleme mit Array auslesen PHP Tipps 2005 3 12.03.2005 18:03
Fehlersuche: Ordner aus Verzeichnis auslesen DannyD PHP Tipps 2004-2 6 19.11.2004 20:36
[Erledigt] User Verzeichnis auslesen PHP-Fortgeschrittene 5 29.10.2004 00:48
[Erledigt] Problem mit Verzeichnis auslesen PHP-Fortgeschrittene 7 20.10.2004 21:50
[Erledigt] Verzeichnis andersrum auslesen PHP Tipps 2004 7 02.08.2004 07:39
verzeichnis auslesen Trumpfass PHP Tipps 2004 2 28.07.2004 21:37
Auslesen eines Ordner bringt Probleme PHP Tipps 2004 2 09.06.2004 13:56

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
htm script ordner auslesen, php glob eckige klammer ignorieren

Alle Zeitangaben in WEZ +2. Es ist jetzt 03:37 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.