note 111626 added to book.shmop

From: Date: Sat, 09 Mar 2013 23:05:40 +0000
Subject: note 111626 added to book.shmop
Groups: php.notes 
Request: Send a blank email to php-notes+get-194011@lists.php.net to get a copy of this message
shmop made simple: $test=get_cache('test'); save_cache($test, 'test1', 600); To save/get cache that easily just save this as cache.php or whatever you see fit: <?php function save_cache($data, $name, $timeout) { // delete cache $id=shmop_open(get_cache_id($name), "a", 0, 0); shmop_delete($id); shmop_close($id); // get id for name of cache $id=shmop_open(get_cache_id($name), "c", 0644, strlen(serialize($data))); // return int for data size or boolean false for fail if ($id) { set_timeout($name, $timeout); return shmop_write($id, serialize($data), 0); } else return false; } function get_cache($name) { if (!check_timeout($name)) { $id=shmop_open(get_cache_id($name), "a", 0, 0); if ($id) $data=unserialize(shmop_read($id, 0, shmop_size($id))); else return false; // failed to load data if ($data) { // array retrieved shmop_close(); return $data; } else return false; // failed to load data } else return false; // data was expired } function get_cache_id($name) { // maintain list of caches here $id=array( 'test1' => 1 'test2' => 2 ); return $id[$name]; } function set_timeout($name, $int) { $timeout=new DateTime(date('Y-m-d H:i:s')); date_add($timeout, date_interval_create_from_date_string("$int seconds")); $timeout=date_format($timeout, 'YmdHis'); $id=shmop_open(100, "a", 0, 0); if ($id) $tl=unserialize(shmop_read($id, 0, shmop_size($id))); else $tl=array(); shmop_delete($id); shmop_close($id); $tl[$name]=$timeout; $id=shmop_open(100, "c", 0644, strlen(serialize($tl))); shmop_write($id, serialize($tl), 0); } function check_timeout($name) { $now=new DateTime(date('Y-m-d H:i:s')); $now=date_format($now, 'YmdHis'); $id=shmop_open(100, "a", 0, 0); if ($id) $tl=unserialize(shmop_read($id, 0, shmop_size($id))); else return true; shmop_close($id); $timeout=$tl[$name]; return (intval($now)>intval($timeout)); } ?> ---- Server IP: 69.147.83.199 Probable Submitter: 96.2.35.212 ---- Manual Page -- http://php.net/manual/en/book.shmop.php Edit -- https://master.php.net/note/edit/111626 Del: integrated -- https://master.php.net/note/delete/111626/integrated Del: useless -- https://master.php.net/note/delete/111626/useless Del: bad code -- https://master.php.net/note/delete/111626/bad+code Del: spam -- https://master.php.net/note/delete/111626/spam Del: non-english -- https://master.php.net/note/delete/111626/non-english Del: in docs -- https://master.php.net/note/delete/111626/in+docs Del: other reasons-- https://master.php.net/note/delete/111626 Reject -- https://master.php.net/note/reject/111626 Search -- https://master.php.net/manage/user-notes.php

« previous php.notes (#194011) next »