Verzeichniss einlesen

  • Hallo, hoffe mir kann einer helfen....
    Folgendes ich habe einen Ordner (X) welches wiederrum einige Ordner enthält, in diesen Ordnern befindet sich dann ein Datei die immer mit .ctrl endet welche ich Laden möchte.
    Ich bräuchte nun ein Script welches mir den Ordner(X) mit den darin enthaltenen Ordnern durchsucht, und überall wo eine .ctrl enthalten ist daraus ein <option> generiert. *hoffe man versteht was ich meine*

    Ich war nicht untätig und habe es schonmal versucht... komme aber gerade nicht weiter.

    Hier mal mein code (ich weis nicht schön aber selten *grins*)#

  • Ähm, ich empfehle mal, die ganzen opendir, readdir und closedir durch ein simples glob zu ersetzen, damit lassen sich schon mal einige Sachen vereinfachen. Weiterhin sehe ich da eine Variable $DATA_RKD, die aus dem nichts erscheint. Dafür wird aber der Parameter $data nirgendwo benutzt. Ich würde mir in solchen Funktionen maximal die Dateinamen holen und auf keinen Fall ein select-Feld anlegen, dass du übrigens nur schließt und nie öffnest.

    Fazit: komplett überarbeiten und vorher ein paar Gedanken machen, wie man sowas am geschicktesten lösen kann.

    Richtig debuggen
    1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
    2. Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(E_ALL); und ini_set("display_errors", true);
    3. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
    4. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde (oder auch nicht).
    5. Schritt 3 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
    6. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
    7. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
    8. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.

  • Ich glaube ich hole mir die Hilfe wo anders ! :(
    Ich wollte kein Kurs in "Wie habe ich zu Proggen ! oder wie Debugge ich !" sondern einen Lösungs vorschlag zum Script...

    1.) Hättest Du dir das Script mal richtig angesehen , dannn hättets du auch bemerkt das es eine function ist die den wert $dir & $data übergeben bekommt !
    2.) $DATA_RKD[] = $file; sie erscheint also nicht aus dem "NICHTS !"

    aber egal ich versuche es mal wo anders... :mad:

  • Brauchst du nicht, crossposting ist böse ...
    Bandit hat schon recht, $DATA_DRK wird nirgends als Array definiert und $data bekommt die Funktion zwar übergeben (das hat bandit aber nicht gemeint) aber die funktion benutzt $data nirgends.
    Egal. Du gehst die sache am besten so an:
    Bau dir eine Funktion, die ein verzeichnis scannt. Wenn diese Funktion innerhalb eines Verzeichnisses wieder auf eines stößt, dann ruft sie sich selbst mit dem ordner als parameter auf. Zurück kommt dann ein array mit pfaden zu den ordnern, in denen .ctrl dateien sind. Das Kannst du ja dann verarbeiten.

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

    2 Mal editiert, zuletzt von Tobse (4. August 2010 um 11:44)

  • Ich glaube ich hole mir die Hilfe wo anders ! :(


    Wenn du meinst! :(


    Ich wollte kein Kurs in "Wie habe ich zu Proggen ! oder wie Debugge ich !" sondern einen Lösungs vorschlag zum Script...


    Den hast du bekommen, sogar relativ ausführlich!


    1.) Hättest Du dir das Script mal richtig angesehen , dannn hättets du auch bemerkt das es eine function ist die den wert $dir & $data übergeben bekommt !


    Und wenn du dir deinen eigenen Scheiß mal richtig angesehen hättest, wäre dir aufgefallen, dass $data überhaupt nicht benutzt wird.


    2.) $DATA_RKD[] = $file; sie erscheint also nicht aus dem "NICHTS !"


    Doch! Wenn du mal das Error-Reporting von PHP hochdrehen würdest, würde dir PHP diese Zeile um die Ohren hauen.

    Wenn du null Ahnung hast, solltest du nicht ausgerechnet dehnen, die dir Tipps geben, auch noch so blöde kommen. Und wenn du so simple Sachen nicht hinbekommst, musst du auch nicht diejenigen anmachen, die solche Scripte locker schreiben können. Mit anderen Worten: komm runter!!!!

  • Hab ich gute Laune heute

    Ordnerklasse:

    Dateiklasse:

    Script:

    zip im Anhang

    PS: Bandits Worte würde ich mir nochmal zu Herzen nehmen

  • Sehr schön Jojo allerdings bezweifle ich das der TS mit dem Code viel anfangen kann bzw verstehen wird


    Ich hätte es mehr so aufgebaut:

    - Filemodel
    - Ordnermodel
    - Filemapper
    - Ordnermapper

  • Ich weiss partou nicht warum "manche" immer eine derart wiederliche Arroganz und unfreundlichkeit an den Tag legen das einem echt übel wird.. :mad:

    Anstatt dumme Sprüche zu reißen währe eine kurze knappe Antwort oder gar eine Lösung besser gewesen. :mad:

    Das Forum hier hat den Namen definitiv verfehlt !

    "forum-hilfe.de"

    Nein den NICHT Cracks ist es nicht gestattet zu fragen, da wird erwartet das mann alles weiß und der ÜBERCODER ist !
    Kommt mal von euren Hohen Rössern runter.

    ICH HABE FERTIG !
    Und WEG !

  • Ähm, du verwechselst da was. Foren sind nicht dafür da, fertige Quellcodes zu liefern, da gibt es Hilfe zur Selbsthilfe.

    Ich sehe auch nicht, wo jemand arrogant und unfreundlich dahergekommen ist. Das siehst nur du so, weil du keine fertige Lösung bekommen hast.

    Ich sag' dir mal was: auf Leute mit deiner Einstellung kann jedes Forum verzichten!

  • Ey sach ma gehts noch?
    Ich setz dir hier ne mehr als fertige Lösung hin (obwohl das tatsächlich nicht die Intention dieses Forums ist) und du meckerst immer noch?
    Dann hau ab. Brauch keiner sowas.


  • jo, dann nimm mal die "scheuklappen" ab !
    Unmöglich ...da kann man echt nur den Kopf schütteln.
    Intressant das ein anderes Forum hier um Welten besser reagiert hat !
    Da war Nix mit "das stimmt aber $XYZ bet und hier haste nen Punkt und da haste nen komma und im übrigen ist das alles Müll was du da machst.....".
    Nein mir wurde ein beispielCode gezeigt wie ich es Lösen könnte und der hat mir geholfen , (habe ja auch nicht nach einem fertigen code verlangt) und net so ein geschwafel...oder ein vor die Füße geworferner Code den nur ein PHP Crack noch kapiert !!! Das meinte ich im übrigen mit Arroganz ! :evil:

    Das bisher definitiv unfreundlichste Forum das ich bisher kennen gelernt habe.
    Leider stimmt es wieder einmal desto größer ein Forum wird desto Unfreundlicher & Arroganter wird es meistens.
    Auf nimmer wieder sehen. !

  • ok da der threadsteller eh weg will und bevor hier noch weiter diskutiert wird, schliesse ich das ganze mal.

    jojo hat dir ne lösung gegeben mehr können wir eh nicht tun. wenn dir das nicht reicht, dann biste hier sowieso fehl am platz.

    geschlossen