Rolf B: Array als PHP-snipped in Datei schreiben und lesen

Beitrag lesen

problematische Seite

Hallo tk,

was es nicht alles gibt 😂 - den kannte ich noch gar nicht.

Aber wenn, dann var_export($array, true), damit ein String rauskommt und das Ergebnis nicht direkt ausgegeben wird. Und wenn man es als PHP Code verwenden will, dann so:

file_put_contents("cache/data.php", "<?php return " . var_export($array, true) . ";");

$test = include "cache/data.php";

Den cache-Ordner sollte man dann übrigens außerhalb des Webroot ablegen, den müssen User nicht abrufen können.

Wie wär's übrigens mit serialize/unserialize? Der Output ist ein gutes Stück kleiner, und man muss nicht PHP Code von "irgendwo" ausführen. Ich würde dafür als Extension dat verwenden und nicht php, denn ausführbarer PHP Code ist es nicht.

file_put_contents( "cache/arr_termintypen.dat", serialize($arr_termintypen));

$test = unserialize(file_get_contents( "cache/arr_termintypen.dat" ));

Es mag allerdings beim Einlesen langsamer sein, weil es kein PHP Code ist und deshalb nicht im Opcode-Cache landet. Ob man es messen kann? Dafür bräuchte man vermutlich Testdaten im Umfang von 1 MB...

Rolf

--
sumpsi - posui - obstruxi