Caching a PHP Array

fl3x7 picture fl3x7 · Nov 18, 2010 · Viewed 14.4k times · Source

My problem is im creating a large nested PHP array which is parsing information from multiple external sources.

On the first return I would like to cache this data.

Im pretty new to caching so don't really know what I should be looking for, any good or bad methods or even if this is common practise! Have googled but not really found anything decent for a cache noob.

Im already using smarty to cache my page content (excluding the dynamic bits), done apache tweaks, minifying etc to increase performance but page loading is still far to long. Sometimes upto 8 seconds!

Using PHP5 with Smarty. Using cURL to parse the XML which is then being stored into the array.

Answer

robbrit picture robbrit · Nov 18, 2010

You could try to cache to a file:

file_put_contents("cache_file", serialize($myArray));

Then to load the cache:

$myArray = unserialize(file_get_contents("cache_file"));

This will work if the things in your array are serializable: no DB connections or file handles, or things like that. Strings and numbers are just fine.

If you need something fancier you can use a memory-based cache like memcached.