Dateiprüfung

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Dateiprüfung

    Hallo erstmal an alle

    ich schreibe derzeit meine ersten Zeilen in php seit einigen Jahren Pause und muss sagen ich bin schon wieder total vor ner Wand
    Vielleicht habe ich auch einfach nur ein Brett vorm Kopf :/

    Naja jedenfalls erstmal das Problem womit ich mich hier rumschlage :

    Ich lasse php stylesheet-Anweisungen berechnen (width,height,usw.) und will diese dann in ein Stylesheet für den jeweiligen Nutzer einfliessen lassen.

    Damit natürlich jeder sein eigenes Stylesheet erhält lasse ich bei jedem Aufruf ein neues Stylesheet erstellen.

    Günstig wäre nun eine Art Zähler der mir überprüft ob eine CSS-Datei schon vorhanden ist oder ob man sie anlegen kann.

    Beispiel eines Ablaufs :

    -> Abfrage : ist temp_01.css vorhanden ?

    Wenn ja dann soll nach temp_02.css gefragt werden....
    Wenn nicht soll dieses temp_01.css angelegt werden....

    Aber ich steh grad völlig auf dem Schlauch welche Schleife ich nun verwenden muss für diese Geschichte -.-

    Also ich weiss das ich mit file_exists(temp_01.css); abfrage ob eine Datei exisitiert.

    Also von der Grundidee sowas wie das hier :

    $prüfdatei = "temp_0.css";
    if(file_exists($prüfdatei)) {
    copy("bla.css","temp_1.css");
    }

    Nur soll ja die Datei die gesucht wird jedesmal um 1 erhöht werden also brauche ich eine Schleife die nicht nur einmal durchlaufen wird. Aber ich steh grad voll auf dem Schlauch kann das sein ? -.- do-while oder while seh ich grad irgendwie als unpassend an oder bin ich nur zu deppert ?

  • #2
    Verzeichnis auslesen alle vorandenen Dateien die mit .css enden counten und dann einfach über eine

    for schleife wandern lassen.
    Bitte Beachten.
    Foren-Regeln
    Danke

    Kommentar


    • #3
      scheint imho ein wenig overdressed zu sein. warum nicht einfach die id des users aus der db ziehen und die für die css-datei verwenden? ist eine abfrage und man braucht keine schleife.

      peter
      Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
      Meine Seite

      Kommentar


      • #4
        PHP-Code:
        $angelegt 0;
        $i 0;
        while (
        $angelegt == 0) {
            
        $pruefdatei "temp_".$i.".css";
            if(!
        file_exists($pruefdatei)) {
                
        copy("bla.css",$pruefdatei);
                
        $angelegt 1;
            }
            
        $i++;

        ich hoffe ich habe dein Problem richtig verstanden. Falls ja, dann sollte der Code da oben genau das tun was du möchtest.

        Der Code tut:
        Er zählt die Dateien temp_ .css ab temp_0.css hoch. Wenn die Datei temp_X.css noch nicht exisitiert, dann legt er sie an mit dem Inhalt der Datei bla.css und setzt $angelegt den Wert 1.
        Das Ganze wird so lange gemacht wie $angelegt den Wert 0 hat.

        Das Ganze ist ungetestet, also bitte nich hauen wenns nich geht^^

        Freizeit-Ratgeber.de
        - Mein aktuelles Projekt rund um Freizeitparks

        Kommentar


        • #5
          hab keine db laufen auf dem webspace ^^

          aber ich schau grad mal wegen verzeichnis auflisten... müsste ich dann ja noch mit regexpressions verfeinern da andere css-dokumente im selben ordner liegen... mal schauen wie weit ich komme.

          danke euch erstmal

          Kommentar


          • #6
            genial genau das wars dank dir

            Kommentar


            • #7
              Du brauchst nicht unbedingt eine DB dafür. Was Kropff sagen wollt und ich pflichte ihm da bei: Verzeichnis auslesen und über Dateien iterieren ist eine ganz schlechte Idee.
              Im ersten Beitrag sprichst du von "ein Stylesheet für den jeweiligen Nutzer". Es gibt also eine Zuordnung Nutzer -> Datei. Also nimm dir ein Kriterium, das den User eindeutig identifiziert, z.B. seine User-ID und baue das in den Dateinamen ein. Schema "temp_$uid.css".
              Dieses $uid musst du bereits irgendwo haben, egal ob aus einer DB oder woher sonst. Ohne $uid könntest du deine Benutzer ja gar nicht unterscheiden.

              Übrigens iteriert man auch nicht über ein Verzeichnis, wenn man kein $uid hat. Dann schreibt man sich lieber die letzte Zahl in eine Datei counter.txt.

              Kommentar


              • #8
                PHP-Code:
                glob('temp_*.css'); 
                Wenn die Dateien fortlaufend nummeriert sind, sogar so:
                PHP-Code:
                $name='temp_'.(count(glob('temp_*.css'))+1).'.css'

                Kommentar


                • #9
                  Brauchst du denn überhaupt fortlaufende Nummern im Dateinamen?
                  Sonst würde ich mir von PHP einfach einen Namen generieren lassen, der hinreichend eindeutig ist - und es mir sparen, jedes mal aufwendig das Verzeichnis zu scannen.
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar

                  Lädt...
                  X