Der Martin: file_put_contents oder touch

Beitrag lesen

Hallo,

Allerdings ist file_put_contents etwa doppelt so schnell wie touch

das wäre aber überraschend und für mich nicht logisch nachvollziehbar.

Siehe hier

Ich bin mir nicht sicher, ob ich diesem Beitrag wirklich trauen mag. Erstens ist er zwei Jahre alt, eine aktuelle PHP-Version könnte sich schon wieder anders verhalten; zweitens spielen auch da wohl viele Cache-Effekte eine Rolle; drittens ist es sehr von der Implementation im Betriebssystem abhängig.
Andererseits reden wir hir von etwa 1ms vs. 2ms bei einer Operation, die man normalerweise nur einzeln durchführt und nicht vielfach in einer Schleife. Mir wäre da die einfachere Schreibweise von touch() sympathischer. Wenn ich den Code in zwei Jahren mal wieder anfassen müsste und file_get_contents() sehe, würde ich mich bestimmt fragen, warum zum Geier ich an der Stelle "nichts" in die Datei schreiben wollte. Wollte ich die Datei etwa "leeren"?

Es gibt nämlich noch einen bösen Fallstrick, der für touch() spricht: Die Variante mit file_put_contents() löscht den Dateiinhalt (setzt die Dateilänge auf 0), wenn die Datei bereits existieren sollte!

Ciao,
 Martin

--
Zwei Dinge sind unendlich: Das Universum und die menschliche Dummheit. Beim Universum bin ich mir aber nicht ganz sicher.
  (Albert Einstein, deutscher Physiker)
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(