Bilder-Cache auf Server löschen

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

  • Bilder-Cache auf Server löschen

    Ich habe schon die Suche benutzt, kann aber die gefundenen Antworten nicht so ganz auf mein Problem umsetzen. Wahrscheinlich ist es ganz simpel, wäre super wenn Ihr mir ein bißchen auf die Sprünge helft.

    Die Galerie auf meiner Seite www.bunte-blumenwelt.de liest die Originaldateien in 2 Cache-Ordner aus: Beetcache und Thumbnailcache.

    Außerdem gibt es im Hauptbilderordner noch die Datei Thumbs.db .

    Ändere ich nun ein Bild mit dem gleichen Namen, aber anderen Inhalt muß ich drei Ordner durchsuchen und die entsprechenden Cache-Dateien löschen. Das ist nun nicht gerade lustig.

    Ich füge die Dateien mit folgenden Code in meine Seiten ein.

    PHP-Code:
    <p class="bild"><?php anzeigen("Beeindruckende_Canna""bild018.jpg"); ?></p>


    Bei der Suche nach Leuten mit ähnlichen Probleme habe ich nun verschiedene Ansätze gefunden:

    PHP-Code:
    <img src="Pfad/Bild.jpg?<?php echo time(); ?>" alt="Bild" />
    Das möchte ich jedoch nicht nehmen daß es meine sehr vielen Bilder dann jedesmal neu lädt.

    Ganz unten in diesem Posting

    www.php-resource.de/forum/showthread.php?s=&threadid=50097&highlight=Cache+l%F6schen

    steht noch eine andere Möglichkeit. Nur weiß ich nicht wo ich das bei mir einfügen soll.

    Dann kam mir noch folgender Code unter:

    PHP-Code:
    <img src="someimage.png?x=<?=uniqid((double)microtime()*1000000,1)?>">

    Na jedenfalls bin ich nun ein wenig verwirrt.

    Ich möchte auf jeden Fall daß die Bilder im Cache benutzt werden, um Traffic zu sparen. Aber sie müssen wenn ich sie ändere auch beim Browser geändert werden, da ich sonst mit der Löscherei wirklich eine Krise kriege.

    Wenn Ihr noch den genauen PHP-Code der Galerie braucht, dann bitte sagen, dann stelle ich ihn rein.

    Vielen Dank
    Claudia

  • #2
    Du musst anstatt

    PHP-Code:
    <img src="Pfad/Bild.jpg?<?php echo time(); ?>" alt="Bild" />
    einfach

    PHP-Code:
    <img src="Pfad/Bild.jpg?<?php echo filemtime("pfad-zum-bild-und-dateiname.jpg"); ?>" alt="Bild" />
    verwenden. Dann lädt dein Browser das Bild genau dann neu, wenn die Ausgabe von filemtime sich geändert hat. Und die ändert sich genau dann, wenn die Datei modifiziert wurde.

    So einfach ist das!
    Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
    var_dump(), print_r(), debug_backtrace und echo.
    Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
    Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
    Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

    Kommentar


    • #3
      Bitte bitte bitte, habe es mir ausgedruckt aber weiß nicht recht wie ich es mit meinen Angaben umsetzen soll:

      Wie mache ich aus:

      PHP-Code:
      <?php anzeigen("Beeindruckende_Canna""bild018.jpg"); ?>
      diesen Code:

      PHP-Code:
      <img src="Pfad/Bild.jpg?<?php echo filemtime("pfad-zum-bild-und-dateiname.jpg"); ?>" alt="Bild" />



      Danke Claudia

      Kommentar


      • #4
        Du schaust nach, wo die Funktion anzeigen definiert ist, was sie macht - und änderst es dort.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Gut wenn man alles ausgedruckt hat. Bin schnell fündig geworden. Allerdings habe ich die Sache programmieren lassen, und deswegen keine Ahnung was mir das alles sagen soll. Hier ist der Code:

          PHP-Code:
          <?php

          include ("config.php");

          function 
          anzeigen($g$file)
          {
              global 
          $hochformat$querformat$pfadzudenbildern$pfadzurgallerie$DOCUMENT_ROOT;

              
          $r get_file_data ($file$g);

              
          cache($g$file$r'beet');

              
          $hoehe = ($r['format'] == 'quer') ? $querformat['beet_hoehe'] : $hochformat['beet_hoehe'];
              
          $breite = ($r['format'] == 'quer') ? $querformat['beet_breite'] : $hochformat['beet_breite'];

              
          ?>
              <a href="gallerie/anzeigen.php?g=<?php echo $g ?>&s=<?php echo $file ?>" target="titel" 
          onclick="oeffneGallerie();" class="<?php echo $r['format'?>">
              <?php
              
          echo '<img src="gallerie/beetcache/' $g '+' $file '" style="border:0;" 
          class="' 
          $r['format'] . '" width="' $breite '" height="' $hoehe '" />';
              
          ?>
              </a>
              <?php
          }

          function 
          beschreibung ($g$file)
          {
              
          $r get_file_data ($file$g);
              echo 
          nl2br(trim($r['beschreibung']));
              return 
          $r['beschreibung'];
          }
          ?>
          Bevor ich da jetzt irgendeinen Murks ändere.

          Bitte seit so lieb und sagt es mir.

          Danke Claudia

          Kommentar


          • #6
            Beschäftige dich entweder selbst soweit mit der Thematik, dass du wenigstens in etwa verstehst, was da passiert - oder lass es dir von dem fertig machen, von dem du es dir hast erstellen lassen.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Tut mir leid wenn ich zu blöd bin es zu verstehen. Derjenige der es programmiert hat, ist leider im Nichts verschwunden. Falls es zu aufwändig ist , dann sag es mir, dann muß ich mir jemand suchen der es umprogrammiert und dafür bezahlt wird. Daran soll es nicht scheitern. Habe für die Programmierung schließlich auch bezahlt.
              Dann schreibe ich es nochmal bei Jobangebote rein.
              Anwenden kann ich solche Dinge schon, aber nunmal reicht mein Gehirn für Programmiersachen nicht aus.

              Kommentar


              • #8
                Hm, hab das bei mir auch mal gemacht:


                PHP-Code:
                 echo"<img src=\"$bild3?\""; echo filemtime("$bild3"); echo" alt=\"Bild\" /> // und so weiter... 
                Aber das alte Bild bleibt hartnäckig drin,
                bis man eine andere Seite aufruft oder nochmal neu läd...

                (Firefox)
                Gruß, Coni
                ~~ codito ergo sum - ich code, also bin ich! ~~

                Kommentar


                • #9
                  PHP-Code:
                  echo"<img src=\"$bild3?".filemtime("$bild3")."\" alt=\"Bild\" /> // und so weiter... 
                  nicht getestet, aber sollte gehen!
                  Für Rechtschreibfehler übernehme ich keine Haftung!

                  Kommentar


                  • #10
                    Das ist doch das gleiche, nur mit weniger Echos!?

                    EDIT:

                    Harrgn...funzt auch. Wenn man das richtige Script ändert!


                    Gruß, Coni
                    ~~ codito ergo sum - ich code, also bin ich! ~~

                    Kommentar


                    • #11
                      Original geschrieben von Coniaric
                      Das ist doch das gleiche, nur mit weniger Echos!?
                      nein ist es nicht. Meins gibt:
                      PHP-Code:
                      <img src="bild1?21254125" alt=....> 
                      aus

                      Deins gibt
                      PHP-Code:
                      <img src="bild1?"21254125 alt=.....> 
                      aus.

                      Das sind unterschiedliche Dinge.

                      Zuletzt geändert von Damian1984; 27.02.2007, 14:55.
                      Für Rechtschreibfehler übernehme ich keine Haftung!

                      Kommentar


                      • #12
                        Oh, die maskierten Anführungszeichen - hab ich glatt übersehen mal wieder! ...okay, danke!
                        Gruß, Coni
                        ~~ codito ergo sum - ich code, also bin ich! ~~

                        Kommentar


                        • #13
                          Ich muß mich nochmal melden. Möchte es doch auch zu gerne verstehen.

                          Mir ist ziemlich klar daß ich diese Zeile ändern muß



                          PHP-Code:
                           echo '<img src="gallerie/beetcache/' $g '+' $file '" style="border:0;" 
                          class="' 
                          $r['format'] . '" width="' $breite '" height="' $hoehe '" />'
                          Ich weiß auch daß er dort aus dem Beetcache das entsprechende File ausliest. Und die Platzhalter sind da, weil es sich um verschiedene Bilder handelt, die er nacheinander auslesen soll.

                          So und nun muß ich wohl

                          PHP-Code:
                          echo filemtime("$g . '+' . $file . "); 
                          dort einfügen. Ich würde das wohl vor style="border usw. machen.

                          Jetzt macht es mir doch nicht so schwer. Wenn das alles ist, muß ich es doch hinkriegen. Prinzipiell verstehe ich ja was da passiert.

                          Viele Grüße
                          Claudia

                          Kommentar


                          • #14
                            was ist $g?

                            PHP-Code:
                            echo '<img src="gallerie/beetcache/' $g '+' $file '?'.filemtime('gallerie/beetcache/' .$g.'+'.$file).'" style="border:0;" 
                            class="' 
                            $r['format'] . '" width="' $breite '" height="' $hoehe '" />'
                            Für Rechtschreibfehler übernehme ich keine Haftung!

                            Kommentar


                            • #15
                              Original geschrieben von Damian1984
                              was ist $g?
                              Das ist der 1. Parameter, wie man in der Fkt.-Deklaration sehen kann. Und wie die Fkt. aufgerufen wird, sieht man auch in ihrem Beispiel

                              Dein Code sollte aber das Problem von ihr lösen :-)
                              Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
                              var_dump(), print_r(), debug_backtrace und echo.
                              Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
                              Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
                              Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

                              Kommentar

                              Lädt...
                              X