Script für Packroutine erstellen - Hilfe

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

  • Script für Packroutine erstellen - Hilfe

    Hallo.
    ich bin neu hier und brauche zu allererst euer Verständnis.
    Ich möchte ein script erstellen, was mir folgende Möglichkeit bietet.

    Auf meinem server existiert ein Verzeichnis/Unterverzeichnisse mit Bildern. Ich möchte ein php.script programmieren, worin entweder das letzte Logindatum oder "Tage zurück" abgefragt wird. Dann soll in einem vorgegebenem Pfad alles mit der Endung *.jpg in eine datei.zip recursive zusammengepackt und diese Datei dann zum download angeboten werden.

    Ich bin Anfänger mit schon vielen Vorkenntnissen in shell-, HTML- und etwas in PHP- und Perlprogrammierung. Ich möchte hierbei unbeding etwas lernen und mehr über PHP erfahren. Was bei mir zuvor ohne Starthilfe nicht klappen wird.

    Wie fange ich das am elegantesten an? Mit einer Art "method="post"" oder "method="get""?

    Dake für Hilfe!
    Poi

  • #2
    Ich bin etwas verwirrt, wohin die Frage zielt: Möchtest du wissen, wie man das Programmieren einer Webapplikation angeht?
    Eigentlich nicht anders als bei anderen Projekten. Anforderungen und Ziele definieren, Abläufe skizzieren usw.

    Oder möchtest du eigentlich wissen, wie und mit was wir hier so beginnen, wenn wir eine Webapplikation in PHP schreiben?
    Ich fange meist damit an, meine "Projektschablone" zu klonen. Das ist ein Verzeichnis mit Unterverzeichnissen, darin enthalten sind Konfigdateien für verschiedene IDEs und Editoren und das Grundgerüst für die PHP-Applikation, also Konfigfiles, Bootstrapper und Standardlibs.
    Nach diesem Klonen richte ich DB, CVS etc. für das neue Projekt ein, öffne die index.php und beginne das Konzept umzusetzen - meist zuerst die Startseite, manchmal aber auch erst das Backend (also Login).

    So nun weißt du es. Aber es wird dir wahrscheinlich nicht helfen. Wenn du ein ordentliches Konzept hast, ergibt sich der Anfang beim Programmieren nämlich fast von selbst. Deine Frage läßt also den Rückschluß zu, dass du noch am Konzept feilen mußt. Viel Erfolg.
    Zuletzt geändert von onemorenerd; 10.09.2006, 01:40.

    Kommentar


    • #3
      Re: Script für Packroutine erstellen - Hilfe

      Original geschrieben von dpoi
      Wie fange ich das am elegantesten an? Mit einer Art "method="post"" oder "method="get""?
      ein formular wird üblicherweise mit post verschickt - worauf möchtest du hinaus?

      Kommentar


      • #4
        Also mal etwas genauer.

        Ich habe mir schon Datenbankanwendungen selbst erstellt, die im Buch standen und an meine Bedürfnisse angepasst. Mir würde ja ein Programm wie "phpXplorer" gefallen. Das ist aber noch zu aufwändig und zu kompliziert.

        Ich habe mir ein shell script geschrieben, was mir genau dies gewärleistet. Es wird eine Abfrage nach "Tage zurück" gestellt und dann das Verzeichnis nach Bildern die "Tage alt" sind, zusammengepackt.

        Ich brauche nun nichts anderes als dieses script über php auszuführen. Ich habe mal phpshell getestet, das funktioniert nicht, weil die Abfrage nicht weitergereicht werden kann. phpshell hat auch den gravierenden Nachteil, dass der Anwender durch die kpl. server Struktur wandern kann, was ich nicht möchte.

        Das script:

        Code:
        #!/bin/bash
        
        # Vorgaben
        SUCHDIR=/data/ftp/Bilder/aktuelle_bilder
        DATEIEXT=*.jpg
        ARCHIVNAME=Backup.$USER.$(date -I)
        
        # Bildschirm klarmachen
        clear
        echo ""
        echo ""
        echo ""
        echo ""
        
        echo -n "Wieviel Tage zurueck suchen?: "
        read TAGEZURUECK <&1
        echo "______________________"
        echo ""
        
        # Alles richtig?
        echo -n "ich suche Bilder die aelter als $TAGEZURUECK Tage sind. Okay? (j/n): "
        read jn <&1
        if [ "$jn" != "j" ]
        then
         echo "...dann Befehl bitte nochmal aufrufen."
         exit
        fi
        echo ""
        echo "Okay! Alles roger, ich packe zusammen!"
        
        
        # Bilder finden und zusammenstellen
        cd $SUCHDIR
        find . -name $DATEIEXT -type f -mtime -$TAGEZURUECK -exec zip -r $SUCHDIR/.scan/
        $ARCHIVNAME.zip {} \;
        Das ist das erste script was aus meiner Idee entstanden ist. Kann bestimmt verfeinert werden, erfüllt seinen Zweck aber allemal.

        Komfortabel wäre eine Erkennung des Benutzers (evtl. mysql: Joomla?), damit man den letzten Login auswerten könnte. Das wäre für mich aber im Moment reiner Luxus!

        Das möchte ich nun über ein php script anbieten. Was NICHT nötig ist, dieses script auf Benutzeranmeldung zu beschränken, da ich hier mit Joomla Contentmanagement und .htaccess arbeite. Also vorläufig einfach ein script was ich über einen Link erreichen kann.

        Ich brauche das zeitnah, darum wäre wochenlanges Bücher lesen nicht der beste Weg. Deshalb versuche ich es mit den Erfahrungen der Nutzer hier, die mich unterstützen und Wege aufzeigen können.

        Ich hoffe das ich jetzt verstanden worden bin... bei der Erläuterung?

        Danke für eure Unterstützung!
        Poi

        Kommentar


        • #5
          Das wird dir hier wohl keiner mal so ebend Proggen....

          Aber ein paar Links in die Doku, kannst von mir bekommen:

          Um die Dateien zusammenzuklauben:
          http://de2.php.net/manual/de/function.glob.php
          http://de2.php.net/manual/de/function.filectime.php

          Hier findest du eine Zipklasse:
          http://www.traum-projekt.com/forum/5...ip-klasse.html


          *ohne gewähr*
          Wir werden alle sterben

          Kommentar


          • #6
            Original geschrieben von dpoi
            Ich brauche nun nichts anderes als dieses script über php auszuführen.
            wenns wirklich nur das ist.
            das kannst du mit exec() oder system() machen.

            Kommentar


            • #7
              Original geschrieben von 3DMax
              exec() oder system()
              Daran habe ich auch schon gedacht.

              Hmm... dann muss ich über die shell eine MySQL Abfrage starten und den LastLogin erfragen.
              Dann diese Variabele auswerten. Hmmm...

              Tx!
              Poi

              Kommentar


              • #8
                Original geschrieben von dpoi
                Hmm... dann muss ich über die shell eine MySQL Abfrage starten und den LastLogin erfragen.
                kannst du aber auch mit php machen.
                irgendwie verstehe ich immer noch nicht, wo der schuh drückt

                Kommentar


                • #9
                  Naja, das shell script ausführen ist eine Sache, aber man kann dann keine Eingaben machen.

                  Ich versuche gerade die Verzeichnisse recursive mit php darzustellen... uff! Aber:
                  PHP-Code:
                  <?php
                  $dir 
                  "/data/bilder/aktuelle_bilder/";

                  if (
                  $handle opendir($dir)) {
                     echo 
                  "Directory handle: $handle\n";
                     echo 
                  "Files:\n";

                     
                  /* Verzeichnis zu durchlaufen. */
                     
                  while (false !== ($file readdir($handle))) {
                         echo 
                  "$file\n";

                     
                  /* Daten in eine Datei schreiben */
                     
                  $datei fopen("in_datei_schreiben.txt""a+");
                         
                  fputs($datei"$file\n");
                         
                  fclose($datei);
                     }
                     
                  closedir($handle);
                  }
                  ?>
                  das liest schonmal das Stammverzeichnis und schreibt es in eine Datei. Das klappt...

                  Jetzt muss ich aber erstmal denken und mir einen Weg aufzeigen.

                  Tx!
                  Poi

                  Kommentar


                  • #10
                    das shell script ausführen ist eine Sache, aber man kann dann keine Eingaben machen.
                    wie meinst du das?

                    Kommentar


                    • #11
                      @dpoi
                      Ich habe hier mal eine recursive Directory Funktion für dich..
                      Diese berechnet allerdings nur die Gesammtgröße
                      aller Dateien, aber du könntest sie für deine
                      Zwecke umbauen.

                      PHP-Code:
                      function my_filesize($dir)
                      {
                        
                      $size 0;
                        foreach(
                      glob($dir.'/*',GLOB_NOSORT) as $file)
                        {
                          if(
                      is_file($file)) $size bcadd($size,filesize($file));
                          if(
                      is_dir($file))  $size bcadd($size,my_filesize($file));
                        }
                        return 
                      $size;

                      Zumindest als Anschauungs-Objekt dürfte das genügen...
                      Wir werden alle sterben

                      Kommentar


                      • #12
                        Original geschrieben von combie
                        aller Dateien, aber du könntest sie für deine
                        Zwecke umbauen.
                        O cool! Danke. Werde ich mich heute Abend gleich mal mit beschäftigen.

                        Tx!
                        Poi

                        Kommentar


                        • #13
                          Ich habe mir nun den php Designer 2007 personal besorgt. Damit kann man schonmal gut arbeiten. Hat jemand ein besseres Werkzeug?

                          Ich habe es nun geschafft, meine MySQL Datenbank anzuzapfen, den User auszuwählen und das Datum des letzten Login zu erfassen. Schritt eins ist geschafft...
                          Poi

                          Kommentar


                          • #14
                            Für alle Sprache, welche keine eigene IDE mitbringen,
                            also auch PHP, nutze ich meist den http://www.pspad.com/de/
                            Für kleinere Projekte und Einsteiger allemal brauchbar.
                            Wir werden alle sterben

                            Kommentar

                            Lädt...
                            X