dey: !file_exists funktioniert nicht (auf Server)

Hallo,

heute gehen meine Probleme nicht aus:

Die Erkennung soll per
if(!file_exists($d.$images[$i])){
funktionieren.
Was sie lokal ja auch macht!

Weiss jemand eine Erklärung dafür, bzw. eine Lösung?

bydey

--
-- noch immer ein erfolgloser <DIV> Jünger --
  1. Hallo,

    Du erklärst leider etwas wirr, was vor sich geht.

    Die Erkennung soll per

    if(!file_exists($d.$images[$i]))
      {
        #...
      }

    Um welche PHP-Versionen handelt es sich?
    file_exists() hat nicht immer die effektiven Rechte berücksichtigt.
    Außerdem wären die Fehlermeldungen (incl. Notices) von Interesse.

    Für das Anlegen der Thumbs solltest Du dann ein

    $fh = @fopen($thumbname,'xb+');

    if ($fh === false)
      {
        # Auswertung von $phperrmsg
      }
      else
      {
        # weitermachen und Thumb anlegen
      }

    benutzen.

    LG
    Chris

    1. Hallo Chris.

      Sehr merkwürdig. Du schreibst:

      Außerdem wären die Fehlermeldungen (incl. Notices) von Interesse.

      Und im gleichen Atemzug notierst du:

      $fh = @fopen($thumbname,'xb+');

      Meiner Meinung nach widerspricht sich dies.

      Einen schönen Freitag noch.

      Gruß, Ashura

      --
      sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
      <mathbr:del.icio.us />
      1. Hallo Ashura,

        Sehr merkwürdig. Du schreibst:

        Außerdem wären die Fehlermeldungen (incl. Notices) von Interesse.

        Und im gleichen Atemzug notierst du:

        $fh = @fopen($thumbname,'xb+');

        Meiner Meinung nach widerspricht sich dies.

        Wenn Du richtig gelesen und dann sicher auch vollständig zitiert hättest, wäre das besser gewesen:

        Ich schrieb:

        $fh = @fopen($thumbname,'xb+');

        if ($fh === false)
          {
            # Auswertung von $phperrmsg
          }
          else
          {
            # weitermachen und Thumb anlegen
          }

        Die Unterdrückung der automatisch ausgegebenen Fehlermeldung ist an dieser Stelle sinnvoll, da mit hoher Wahrscheinlichkeit eine erwartet wird. "Fehlermeldungen" sind per se nichts böses, sondern dienen dem gezielten Programmablauf, vorausgesetzt, man wertet sie aus. Dies wird in diesem Scriptbeispiel sowohl durch

        if($fh === false)

        als auch durch

        # Auswertung von $phperrmsg

        gewährleistet, und zwar qualifiziert!

        Die bloße Ausgabe der Fehlermeldung auf der Konsole oder an den Browser würde die geforderte Leistung nicht erbringen. Es soll schließlich vom Script abhängig vom Ergebnis der Funktion reagiert werden, und nicht vom User.

        Damit $phperrmsg auf bedient wird, muss (track_errors = on) sein.

        Leider habe ich immer noch nicht herausgefunden, wie man nach IO-Funktionen gezielt eine _Fehlernummer_ abfragen kann, ohne den Debug-Mechanismus einzuschalten. Daher wwerte ich immer die durchaus eindeutigen Texte in $phperrmsg aus.

        Unabhängig von meinem Vorschlag fragte ich dann noch nach den Fehlermeldungen des OP...

        LG
        Chris

        1. Hallo Chris.

          Wenn Du richtig gelesen und dann sicher auch vollständig zitiert hättest, wäre das besser gewesen:

          Ja, stimmt. Sehe ich gerade, sorry.

          Einen schönen Freitag noch.

          Gruß, Ashura

          --
          sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
          <mathbr:del.icio.us />
      2. echo $begrüßung;

        Sehr merkwürdig. Du schreibst:

        Außerdem wären die Fehlermeldungen (incl. Notices) von Interesse.

        Und im gleichen Atemzug notierst du:

        $fh = @fopen($thumbname,'xb+');

        Meiner Meinung nach widerspricht sich dies.

        Aber nur, wenn man nicht weiterliest, denn da folgt noch ein

        if ($fh === false) {
            # Auswertung von $phperrmsg

        Mal abgesehen davon, dass die Variable $php_errormsg heißt und track_errors eingeschaltet sein muss, damit diese gefüllt wird, ist dort die Auswertung gegeben.

        echo "$verabschiedung $name";

        1. Hallo Dedlfix,

          Mal abgesehen davon, dass die Variable $php_errormsg heißt

          Danke für das Fixing ;-)

          Dann sollte man noch erwähnen, dass man sicherheitshalber mittels

          if (!empty($php_errormsg))

          darauf zugreifen sollte, um nicht in einigen Konstallationen eine Notice zu kassieren. Manchmal verschwindet diese Variable nämlich einfach (dann ist auch kein fehler aufgetreten). Ich habe auch noch nicht herausgefunden, warum.

          LG
          Chris

          1. Hallo nochmal, Nachtrag:

            Dann sollte man noch erwähnen, dass man sicherheitshalber mittels

            if (!empty($php_errormsg))

            darauf zugreifen sollte, um nicht in einigen Konstallationen eine Notice zu kassieren. Manchmal verschwindet diese Variable nämlich einfach (dann ist auch kein fehler aufgetreten). Ich habe auch noch nicht herausgefunden, warum.

            Dumme Idee, noch nicht überprüft: Wird $php_errormsg im jeweiligen Scope separat angelegt? Ist die nicht global?

            Ist mir aber auch schon vorgekommen, dass ich sie global als Leerstring angelegt hatte, und sie bei bestimmten IO-Operationen einfach hinterher nicht mehr da war. Leider habe ich es mit nicht genauer angeschaut. Ich hab dann eben einfach mittels empty() Medizin aufs Problem geschüttet.

            LG
            Chris

            1. echo $begrüßung;

              Dumme Idee, noch nicht überprüft: Wird $php_errormsg im jeweiligen Scope separat angelegt? Ist die nicht global?

              This variable will only be available within the scope in which the error occurred ...

              echo "$verabschiedung $name";

              1. Hallo,

                Dumme Idee, noch nicht überprüft: Wird $php_errormsg im jeweiligen Scope separat angelegt? Ist die nicht global?

                This variable will only be available within the scope in which the error occurred ...

                Ja danke. Das steht da jetzt.
                Würde allerdings noch nicht das Verschwinden erklären in einem simplen ellenlangen Top-Down-Script. Wenn ich nochnmal ganz viel Lust dazu habe, suche ich das nochmal raus.

                Es wurde inerhalb des Scopes $php_errormsg als Leerstring angelegt.
                Dann wurden diverse IO-Operationen durchgeführt.
                Bei irgendwelöchen davon war $php_errormsg anschließend grundsätzlich verschwunden, wenn kein Fehler aufgetreten war.

                Das ist aber scheinbar nicht grundsätzlich der Fall.

                LG
                Chris

    2. Hallo,

      Du erklärst leider etwas wirr, was vor sich geht.

      if(!file_exists($d.$images[$i]))
        {
          #...
        }

      soll feststellen ob das Thumbnail schon existiert:

      • ja= nix machen (bzw. Meldung ausgeben, dass schon vorhanden
      • nein= Thumbnail erstellen

      Um welche PHP-Versionen handelt es sich?

      PHP Version 4.3.7

      file_exists() hat nicht immer die effektiven Rechte berücksichtigt.
      Außerdem wären die Fehlermeldungen (incl. Notices) von Interesse.

      Es gibt keine Fehlermeldung:

      • die Thumbnail-Datei existiert und sollte gefunden werden
      • sie wird aber NIE gefunden

      Für das Anlegen der Thumbs solltest Du dann ein

      $fh = @fopen($thumbname,'xb+');

      an dieser Stelle würde doch schon ein Fehler kommen, wenn die Datei nicht existiert (was auch sein kann) oder

      bydey

      --
      -- noch immer ein erfolgloser <DIV> Jünger --
      1. Hallo,

        file_exists() hat nicht immer die effektiven Rechte berücksichtigt.
        Außerdem wären die Fehlermeldungen (incl. Notices) von Interesse.

        Es gibt keine Fehlermeldung:

        • die Thumbnail-Datei existiert und sollte gefunden werden
        • sie wird aber NIE gefunden

        Aber was passiert dann später, wenn Du sie anzulegen versuchst?
        Wenn file_exists() die Datei mangels Rechten (safe_mode) nicht sehen kann, darf fopen(...,'wb') sie auch nicht anlegen können. Spätestens dann sollte es einen Access-Error due to safe mode geben.

        Für das Anlegen der Thumbs solltest Du dann ein

        $fh = @fopen($thumbname,'xb+');
        an dieser Stelle würde doch schon ein Fehler kommen, wenn die Datei nicht existiert (was auch sein kann) oder

        Nein, genau dann, wenn sie _nicht_ existiert und das Verzeichnis beschreibbar ist, sollte keine Fehlermeldung kommen.

        Nur wenn die Datei bereits vorhanden ist, oder im Verzeichnis nicht geschreiben werden durfte, sollte (unterschiedliche) Fehlermeldungen auftauchen und das Handle === false sein.

        LG
        Chris

        1. Hallo,

          Aber was passiert dann später, wenn Du sie anzulegen versuchst?
          Wenn file_exists() die Datei mangels Rechten (safe_mode) nicht sehen kann, darf fopen(...,'wb') sie auch nicht anlegen können. Spätestens dann sollte es einen Access-Error due to safe mode geben.

          da ist ja irgendwie der Haken:

          • anlegen kann und tut es immer
          • sehen mit file_exists() kann er nie

          Nur wenn die Datei bereits vorhanden ist, oder im Verzeichnis nicht geschreiben werden durfte, sollte (unterschiedliche) Fehlermeldungen auftauchen und das Handle === false sein.

          ich teste das gerade lokal

          • bei Handle === false erstellt das script jetzt immer eine neue Thumbnail-Datei und
          • bei Handle !== false nie

          in beiden Fällen unabhängig davon, ob die Datei schon vorhanden ist oder nicht

          oder würde von dir beschriebenes Verhalten nur auf dem Server funktionieren

          bydey

          --
          -- noch immer ein erfolgloser <DIV> Jünger --
  2. Moin dey,

    if(!file_exists($d.$images[$i])){

    zeige mal bitte was in $d.$images[$i] drin steht.
    Ich habe da eine Vermutung.

    regds
    Mike©

    --
    Freunde kommen und gehen. Feinde sammeln sich an.
    1. Hallo,

      if(!file_exists($d.$images[$i])){

      zeige mal bitte was in $d.$images[$i] drin steht.

      z.B. ./thumbs/BowlJan06/DSC04797.JPG

      bydey

      --
      -- noch immer ein erfolgloser <DIV> Jünger --
      1. Hallo dey,

        if(!file_exists($d.$images[$i])){

        zeige mal bitte was in $d.$images[$i] drin steht.

        z.B. ./thumbs/BowlJan06/DSC04797.JPG

        Ich vermute ganz stark, dass Du uns 'was verschweigst.
        Wetten, zuhause hast Du ein Windows-System?
        Und hast Du Case-Sensitivity für dein Dateisystem aktiviert?

        Und beim Provider ist es bestimmt ein Unix/Linux-System, das von Haus aus zwischen Groß- und Kleinschreibung unterscheidet?

        Nun bin ich aber gespannt!

        LG
        Chris

        1. Hallo Chris.

          Wetten, zuhause hast Du ein Windows-System?
          Und hast Du Case-Sensitivity für dein Dateisystem aktiviert?

          Das ist unter Windows möglich?

          Einen schönen Freitag noch.

          Gruß, Ashura

          --
          sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
          <mathbr:del.icio.us />
          1. Hallo,

            Wetten, zuhause hast Du ein Windows-System?
            Und hast Du Case-Sensitivity für dein Dateisystem aktiviert?

            Das ist unter Windows möglich?

            Ja. Kommt aber sicher auf das Windows an.
            Bitte frage mich aber nun nicht, ob das von Haus aus geht, oder ob men ein Plug-In dafür benötigt. Ich selber verwende es nicht, weiß aber, dass mein Partner das mal für einen Kunden eingerichtet hat.

            LG
            Chris

            1. Hallo Chris.

              Bitte frage mich aber nun nicht, ob das von Haus aus geht, oder ob men ein Plug-In dafür benötigt.

              Von Haus aus ist Windows case-insensitive.

              Ich selber verwende es nicht, weiß aber, dass mein Partner das mal für einen Kunden eingerichtet hat.

              Dass dies wirklich funktionstüchtig war bezweifle ich auf Grund dieses Artikels.

              Einen schönen Freitag noch.

              Gruß, Ashura

              --
              sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
              <mathbr:del.icio.us />
        2. Hallo,

          z.B. ./thumbs/BowlJan06/DSC04797.JPG

          Ich vermute ganz stark, dass Du uns 'was verschweigst.

          niemals

          Wetten, zuhause hast Du ein Windows-System?

          ci

          Und hast Du Case-Sensitivity für dein Dateisystem aktiviert?

          weis ich nicht

          Und beim Provider ist es bestimmt ein Unix/Linux-System, das von Haus aus zwischen Groß- und Kleinschreibung unterscheidet?

          ich wüsste nicht warum das entscheidend ist:

          • das Unterverzeichnis "BowlJan06" und die Datei "DSC04797.JPG" legt das System mit seinen eigenen Konventionen an
          • sollte es also auch wiederfinden?
          • "thumbs" ist klein geschrieben

          Der Pfad sollte es nicht sein, da die Thumbnails später in der Ansicht ja richtig dargestellt werden.
          Ihr könnt euch das Ergebnis ja anschauen:
          http://ah-nordenstadt.de/testdey-gal/?create=1
          Ich habe jetzt auch is_file gestest.
          Selbes Ergebnis: lokal gut und auf Server schlecht

          bydey

          --
          -- noch immer ein erfolgloser <DIV> Jünger --
          1. Hallo,

            was passiert denn bei

            if (file_exists('./thumbs/BowlJan06/DSC04797.JPG'))
              {
                echo filesize('./thumbs/BowlJan06/DSC04797.JPG');
              }

            ich wüsste nicht warum das entscheidend ist:

            *pst* nicht pampelig werden :-)

            Solange wir nicht alle Fakten kennen, können wir schlielich nur "qualifiziert stochern".

            Das beste wird sein, alle Pfade mal zur Kontrolle ausgeben zu lassen.
            Vielleicht fehlt nur irgendwo ein Punkt, ( ./ ) oder Du gehst vom falschen aktiven Verzeichnis aus.

            Die Version mit

            $fh = fopen($thumbname,'xb+');

            funktioniert aber bestimmt! Daran glaube ich ganz fest!

            if (file_exists())

            ist ohnehin zeitkritisch. Das sollte man nur benutzen, wenn man nicht mit provozierten Fehlermeldungen umgehen kann.

            LG
            Chris

            1. Hallo,

              *pst* nicht pampelig werden :-)

              war nie und nimmer meine Absicht!

              Solange wir nicht alle Fakten kennen, können wir schlielich nur "qualifiziert stochern".

              ich versuche es doch

              Das beste wird sein, alle Pfade mal zur Kontrolle ausgeben zu lassen.
              Vielleicht fehlt nur irgendwo ein Punkt, ( ./ ) oder Du gehst vom falschen aktiven Verzeichnis aus.

              Die Version mit

              $fh = fopen($thumbname,'xb+');

              funktioniert aber bestimmt! Daran glaube ich ganz fest!

              werde das noch ausgiebig testen, wenn du doch so fest daran glaubst!

              if (file_exists())

              ist ohnehin zeitkritisch. Das sollte man nur benutzen, wenn man nicht mit provozierten Fehlermeldungen umgehen kann.

              Das ist schlecht, denn meine aktuelle FUNKTIONIERENDE LÖSUNG sieht so aus:
              [code lang=php]
                       $all_thumbs = array();
                       $get_thumbs = opendir($d);
                       while ($thumb_name = readdir ($get_thumbs)) {$all_thumbs = array_merge ($all_thumbs, $thumb_name);}
                             if (!in_array ($images[$i], $all_thumbs)){
              [/php]
              und die ist bestimmt nicht weniger Zeitkritisch!?

              bydey

              --
              -- noch immer ein erfolgloser <DIV> Jünger --
              1. Hallo,

                $all_thumbs = array();
                  $get_thumbs = opendir($d);

                while ($thumb_name = readdir ($get_thumbs))
                  {
                    $all_thumbs = array_merge ($all_thumbs, $thumb_name);
                  }

                if (!in_array ($images[$i], $all_thumbs))
                  {
                    # ??? was passiert dann?

                *ups*

                Da steckt sowieso noch ein dicker Fehler drin.
                Was passiert wohl, wenn eine Datei Namens "0" dabei ist?

                Kennst Du die Funktion glob() schon?
                http://de.php.net/manual/de/function.glob.php

                LG
                Chris

                1. Hallo,

                  Hallo,

                  $all_thumbs = array();
                    $get_thumbs = opendir($d);

                  while ($thumb_name = readdir ($get_thumbs))
                    {
                      $all_thumbs = array_merge ($all_thumbs, $thumb_name);
                    }

                  if (!in_array ($images[$i], $all_thumbs))
                    {
                      # ??? was passiert dann?

                  An dieser Stelle wird die Funktion aufgerufen, die die Thumbnails erzeugt

                  *ups*

                  Da steckt sowieso noch ein dicker Fehler drin.
                  Was passiert wohl, wenn eine Datei Namens "0" dabei ist?

                  Kennst Du die Funktion glob() schon?
                  http://de.php.net/manual/de/function.glob.php

                  Ich entnehme dem Link, dass glob + Filter sicherer ist als opendir + readdir.
                  Kann ich gleichteitig nach *.jpg und *.gif  etc. suchen?

                  bydey

                  --
                  -- noch immer ein erfolgloser <DIV> Jünger --
                  1. Hallo,

                    if (!in_array ($images[$i], $all_thumbs))
                      {
                        # ??? was passiert dann?

                    An dieser Stelle wird die Funktion aufgerufen, die die Thumbnails erzeugt

                    Ich entnehme dem Link, dass glob + Filter sicherer ist als opendir + readdir.
                    Kann ich gleichteitig nach *.jpg und *.gif  etc. suchen?

                    nicht dass ich wüsste...

                    Allerdings ist es doch ein ganz schöner Overhead, erst das gesamte Verzeichnis auszulesen (in der Applikationsebene), nu um festzustellen, ob eine einzige Datei vorhanden ist.

                    $bildname  = '12345.jpg';
                    $bildpfad  = './bilder/';
                    $thumbpfad = './thumbs/';

                    $ft = @fopen($thumbpfad.$bildname,'xb+');
                      if ($ft !== false)
                      {
                        fwrite($ft, make_thumb($bildpfad.$bildname));
                        fclose ($ft);
                      }

                    Nur so als Skizze.
                    Vielleicht kannst Du etwas damit anfangen.

                    Die Funktion make_thumb() sollte den Bytestream des Bildes als Thumb erzeugen in dem Format, in dem das Bild vorliegt. Ab PHP 4.3.11 soll das doch auch für GIFs wieder gehen, oder?

                    LG
                    Chris

                    1. Hallo,

                      Allerdings ist es doch ein ganz schöner Overhead, erst das gesamte Verzeichnis auszulesen (in der Applikationsebene), nu um festzustellen, ob eine einzige Datei vorhanden ist.

                      $bildname  = '12345.jpg';
                      $bildpfad  = './bilder/';
                      $thumbpfad = './thumbs/';

                      $ft = @fopen($thumbpfad.$bildname,'xb+');
                        if ($ft !== false)
                        {
                          fwrite($ft, make_thumb($bildpfad.$bildname));
                          fclose ($ft);
                        }

                      Nur so als Skizze.
                      Vielleicht kannst Du etwas damit anfangen.

                      Ich dachte mir schon, dass es nicht optimal ist mit dem array, aber immerhin es funktioniert

                      Die Funktion make_thumb() sollte den Bytestream des Bildes als Thumb erzeugen in dem Format, in dem das Bild vorliegt. Ab PHP 4.3.11 soll das doch auch für GIFs wieder gehen, oder?

                      Wie schon erwähnt ist das komplette script ja von den Jungs die Photoit gemacht haben. Ich modifiziere ja nur, was bei mir nicht läuft!
                      Und mit dem image-kram kenn ich mich nicht.
                      Anyway, es sei gedankt, denn auch trotz mit langem Kampf habe ich eine lauffähige Lösung.

                      Ich werde mal glob() und auch file_size testen.

                      bydey

                      --
                      -- noch immer ein erfolgloser <DIV> Jünger --
                2. Hallo Chris.

                  Kennst Du die Funktion glob() schon?
                  http://de.php.net/manual/de/function.glob.php

                  Laut Test ist glob() aber leider nur halb so schnell wie scandir():

                  Starte Geschwindigkeitstest...
                  Erster Durchlauf (scandir):  1.6321709156 Sekunden
                  Zweiter Durchlauf (glob): 3.20981502533 Sekunden
                  Prozentual (1/2):  0.508493761392

                  Einen schönen Freitag noch.

                  Gruß, Ashura

                  --
                  sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
                  <mathbr:del.icio.us />
                  1. Hallo,

                    Hallo Chris.

                    Kennst Du die Funktion glob() schon?
                    http://de.php.net/manual/de/function.glob.php

                    Laut Test ist glob() aber leider nur halb so schnell wie scandir():

                    Starte Geschwindigkeitstest...
                    Erster Durchlauf (scandir):  1.6321709156 Sekunden
                    Zweiter Durchlauf (glob): 3.20981502533 Sekunden
                    Prozentual (1/2):  0.508493761392

                    Scandir benötigt aber php5!

                    bydey

                    --
                    -- noch immer ein erfolgloser <DIV> Jünger --
                    1. Hallo dey.

                      Scandir benötigt aber php5!

                      Wenn man dies bei seinem Provider nicht bekommen kann, sollte man sich einen anderen suchen.
                      Außerdem stehen noch opendir, dir und Co. zur Verfügung.

                      Im Übrigen muss ich einen ungünstigen Zeitpunkt bzgl. meiner CPU erwischt haben; glob ist tatsächlich in etwa gleich schnell wie scandir:

                      Starte Geschwindigkeitstest...
                      Erster Durchlauf:  1.71974515915 Sekunden
                      Zweiter Durchlauf: 1.67978405952 Sekunden
                      Prozentual (1/2):  1.02378942662

                      Einen schönen Freitag noch.

                      Gruß, Ashura

                      --
                      sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
                      <mathbr:del.icio.us />
                      1. Hallo,

                        Wenn man dies bei seinem Provider nicht bekommen kann, sollte man sich einen anderen suchen.
                        Außerdem stehen noch opendir, dir und Co. zur Verfügung.

                        Ja, das Leben ist kein Wunschkonzert. Sonst würden hier ja auch nie DAUs wie meinereiner unnötige lange Threads wegen völliger Ahnungslosigkeit produzieren

                        Im Übrigen muss ich einen ungünstigen Zeitpunkt bzgl. meiner CPU erwischt haben; glob ist tatsächlich in etwa gleich schnell wie scandir:

                        Und testen und vergleichbaren Bedingungen ist eine Kunst und oft unmöglich!

                        bydey

                        --
                        -- noch immer ein erfolgloser <DIV> Jünger --
                  2. echo $begrüßung;

                    Laut Test ist glob() aber leider nur halb so schnell wie scandir():

                    Starte Geschwindigkeitstest...
                    Erster Durchlauf (scandir):  1.6321709156 Sekunden
                    Zweiter Durchlauf (glob): 3.20981502533 Sekunden
                    Prozentual (1/2):  0.508493761392

                    Du hast leider unterschlagen, wieviele Schleifendurchläufe du gebraucht hast, um überhaupt in Bereiche von merkbaren Sekunden vorzustoßen. Und an dieser Stelle beginnt dann wieder die Diskussion, wie sinnvoll oder sinnlos das Einsparen von Mikrosekunden oder noch kleineren Zeiteinheiten bei einer interpretierten Sprache wie PHP ist ...

                    echo "$verabschiedung $name";

                    1. Hallo dedlfix.

                      Du hast leider unterschlagen, wieviele Schleifendurchläufe du gebraucht hast, um überhaupt in Bereiche von merkbaren Sekunden vorzustoßen.

                      Ich hatte die Wahl zwischen der Verringerung der Schleifendurchgänge oder dem Hochsetzen des Timelimits für Skripte.
                      Ich entschied mich für Ersteres und wählte 10.000 Durchläufe.

                      Und an dieser Stelle beginnt dann wieder die Diskussion, wie sinnvoll oder sinnlos das Einsparen von Mikrosekunden oder noch kleineren Zeiteinheiten bei einer interpretierten Sprache wie PHP ist ...

                      Je nach Umfang eines Projektes sind solche Einsparungen doch durchaus eine Überlegung wert, wenn sie keinen sonderlich großen Aufwand bedeuten.

                      Einen schönen Freitag noch.

                      Gruß, Ashura

                      --
                      sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
                      <mathbr:del.icio.us />
                      1. Hallo,

                        Ich hatte die Wahl zwischen der Verringerung der Schleifendurchgänge oder dem Hochsetzen des Timelimits für Skripte.
                        Ich entschied mich für Ersteres und wählte 10.000 Durchläufe.

                        Das deutet darauf hin, dass Du uns (unwissend) betrogen haben könntest... :-)

                        Sieh Dir mal die Bemerkungen zu clearstatchache() an
                        http://de.php.net/manual/de/function.clearstatcache.php

                        ähnliche Dinge gelten selbstverständlich auch für das Directory,
                        zumindest auf OS-Ebene...

                        Solange also nicht sichergestellt, welche Prozesse wann und wie ebenfalls auf dasselbe Filesystem zugreifen können, hat Deine "Performance-Messung" soviel Wert, wie gebrauchtes Toilettenpapier ;-)

                        LG
                        Chris