Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] foreach schleife Darstellungsfehler

Einklappen

Neue Werbung 2019

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

  • [Erledigt] foreach schleife Darstellungsfehler

    Hallo Leute,

    Habe ein kleines Problem mit der foreach schleife kann leider den Fehler nicht finden.Es sollen nach x Minuten/Sekunden die Dateien aus den temp Ordner gelöscht werden.
    Hier mal der Code :
    PHP-Code:
    <?php

     $links 
    'false';
     
    $mt microtime();
     
    $mt str_replace("0."""$mt);
     
    $mt str_replace("-"""$mt);
     
    $mt str_replace(" """$mt);
     
    $time $mt;

     foreach (
    glob("temp/*.gif") as $filename) {
      @
    unlink($filename);
     }
     foreach (
    glob("temp/*.jpg") as $filename) {
      @
    unlink($filename);
     }
    ?>
    Die Fehlermeldung :
    Warning: Invalid argument supplied for foreach() in /srv/www/htdocs/web/html/tattoo/index.php on line 10

    Wäre nett wenn mir wer helfen könnte
    Gruß Chris

  • #2
    Liegts vielleicht daran das keine Datei gefunden werden konnte.

    Kommentar


    • #3
      Nein die Dateien werden angelegt temp/blabla.gif sowie jpg die Fehlermeldung in der foreach schleife bekomme ich nicht weg.Ich nehme an dadurch werden die Dateien nicht im temp Ordner gelöscht.

      Kommentar


      • #4
        foreach (glob("temp/*.gif") as $filename) {
        @unlink($filename);
        }
        Klassiker. Der Pfad der oben im glob steht fehlt.

        Kommentar


        • #5
          Hallo,
          meinst du das in etwa so:

          PHP-Code:
          foreach (glob("blabla/temp/*.gif") as $filename) {
          @
          unlink($filename);

          Kommentar


          • #6
            Nein.
            PHP-Code:
            foreach (glob("temp/*.gif") as $filename) {
            @
            unlink('temp/' $filename);

            [edit]
            Oh, ich sehe gerade das.
            Warning: Invalid argument supplied for foreach() in /srv/www/htdocs/web/html/tattoo/index.php on line 10
            Dann stimmt wohl schon im glob der pfad nicht.

            Anscheinend kommt der Fehler ja nur für *.gif?

            Kommentar


            • #7
              Echt Klasse genau das wars!

              Leider werden die Dateien nicht gelöscht.

              Kommentar


              • #8
                Dann entferne mal das @...

                Kommentar


                • #9
                  Ups dann kommen eine ganze reihe von Fehlermeldungen:
                  zB.:Warning: unlink() [function.unlink]: Unable to access temp/temp/989549001225461000-final.jpg in /srv/www/htdocs/web/html/tattoo/index.php on line 15

                  und diese wieder vom Anfang:
                  Warning: Invalid argument supplied for foreach() in /srv/www/htdocs/web/html/tattoo/index.php on line 11

                  Warning: Invalid argument supplied for foreach() in /srv/www/htdocs/web/html/tattoo/index.php on line 14

                  Kommentar


                  • #10
                    Ah, ich glaube ich weiß, warum:
                    Warning: Invalid argument supplied for foreach()
                    glob erzeugt als Ausdruck ein Array, ist aber keine Variable. Das ist dasselbe, als würdest Du empty (glob (...)) machen.
                    Weise den Output von globl vorher einer Variablen zu.

                    Warning: unlink() [function.unlink]: Unable to access temp/t
                    Könnte auf einen falschen Pfad hinweisen oder eine fehlende Berechtigung. Benutze mal einen absoluten Serverpfad...

                    Kommentar


                    • #11
                      okay ich hoffe habs richtig verstanden:

                      PHP-Code:
                      foreach (glob("temp/*.gif") as $filename) {
                       @
                      unlink('http://Domain.de/temp/' $filename);
                      }
                       foreach (
                      glob("temp/*.jpg") as $filename) {
                       @
                      unlink('http://Domain.de/temp/' $filename);

                      wenn ich das @ wegnehme kommen Fehlermeldungen.

                      Habe auch grad gemerkt wenn ich den inhalt des temp Ordners lösche ist die Fehlermeldung vom Anfang wieder da.

                      Safe Mod ist On nur als Hinweis.

                      Kommentar


                      • #12
                        glob erzeugt als Ausdruck ein Array, ist aber keine Variable. Das ist dasselbe, als würdest Du empty (glob (...)) machen.
                        Weise den Output von globl vorher einer Variablen zu.
                        Laut Manual (warum gibts das nur auf englisch?) ist dem nicht so, selbst im Beispiel wird foreach benutzt.

                        Ich glaube eher hier liegt ein error vor, denn
                        Returns an array containing the matched files/directories, an empty array if no file matched or FALSE on error.
                        Nur was heisst in diesem Fall "error" ?

                        EDIT:
                        @Chriss: mach doch mal

                        PHP-Code:
                        error_reporting(E_ALL E_STRICT);
                        ini_set("display_errors ",1
                        davor

                        Kommentar


                        • #13
                          Nette Idee doch es kommt:
                          Parse error: syntax error, unexpected T_VARIABLE in /srv/www/htdocs/web/html/tattoo/index.php on line 5


                          Es geht ja soweit nur wie lösche ich die daten im temp ordner es werden jeweils 2 Daten angelegt:7781.gif und 7781-final.jpg

                          Kommentar


                          • #14
                            Ich hab nen Semikolon vergessen -.- maaan

                            [MOD.nikosch: Dann benutz doch die edit Funktion...]

                            Kommentar


                            • #15
                              Naja, ungültiges Verzeichnis wäre bspw. ein Fehlerfall. Kann aber sein, dass foreach eine Kopie erzeugt. Offensichtlich wird mindestens das .jpg foreach aber ausgeführt:
                              Unable to access temp/temp/989549001225461000-final.jpg

                              Kommentar

                              Lädt...
                              X