3 Stimmen

PHP: clearstatcache() funktioniert nicht

Mein Arbeitsablauf ist ziemlich einfach:

  1. Ich lösche eine Datei
  2. Ich rufe clearstatcache()
  3. Ich speichere eine neue Datei
  4. Ich rufe clearstatcache()

Trotzdem, am Ende, is_file() gibt zurück. false eine Zeit lang, bevor er beschloss, zurückzukehren true wenn ich zum Beispiel 10 Sekunden später aktualisiere.

Es sieht nach einem Cache-Problem aus, nicht wahr?

Hier ist ein Teil meines Codes:

// step 1
$path = 'file_to_delete.jpg';
unlink($path);

// is_file($path) returns false here -- normal behavior
// step 2
clearstatcache();

// step 3 -- some stuff going on on an uploaded image, that leads to:
imagejpeg($imagetosave, $path, 80);

// step 4
clearstatcache();

// is_file() returns false, i have to wait a couple of seconds before it starts returning true

Vielen Dank für Ihre Hilfe!

EDIT:

In Anbetracht all der Antworten, die ich hatte, stellt sich das Problem nicht. scheinen zu kommen clearstatcache() .

Aber sollte ich hinzufügen, wenn ich die Datei überschreibe (also ihre bestehende Status ändert sich nicht), is_file() liefert das gute Ergebnis, aber wenn seine bestehende Status tatsächlich ändert, tritt das Problem auf. Es wäre seltsam, wenn der Fehler nicht von clearstatcache() richtig? (oder etwas im Zusammenhang mit diesem Cache in der Tat)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X