application.php
来自「视频监控网络部分的协议ddns,的模块的实现代码,请大家大胆指正.」· PHP 代码 · 共 178 行
PHP
178 行
<?php//// +----------------------------------------------------------------------+// | PEAR :: Cache |// +----------------------------------------------------------------------+// | Copyright (c) 1997-2003 The PHP Group |// +----------------------------------------------------------------------+// | This source file is subject to version 2.02 of the PHP license, |// | that is bundled with this package in the file LICENSE, and is |// | available at through the world-wide-web at |// | http://www.php.net/license/2_02.txt. |// | If you did not receive a copy of the PHP license and are unable to |// | obtain it through the world-wide-web, please send a note to |// | license@php.net so we can mail you a copy immediately. |// +----------------------------------------------------------------------+// | Authors: Richard Heyes <richard@phpguru.org> |// +----------------------------------------------------------------------+//// $Id: Application.php,v 1.5 2003/01/04 11:54:45 mj Exp $require_once 'Cache.php';// Application level variables//// Purpose// Variables that are persisent across all user sessions,// not just a specific user ala normal sessions.//// Usage://// Example 1://// $app =& new Cache_Application();// $_APP =& $app->getData();//// In this case the $_APP variable is akin to the $_SESSION variable.// If you add/remove stuff, it will be reflected in the next request// (of any user).//// Example 2://// $foo = 'Some data';// $bar = 'Some other data';//// $app =& new Cache_Application();// $app->register('foo');// $app->register('bar', $bar); //// $foo = 'Different data';//// In this case the variables are registered with the register() function.// This is akin to session_register().//// As with session_register(), the contents of the variable at the *end* of the// request is registered and not at the point of registration. Therefore in this// example, for the $foo variable, the string 'Different data' is stored and not // 'Some data'. The exception to this rule is if you use the second argument to// register() as in the second call to it above. This will cause the data supplied// in the second argument to be stored and not the contents at the end of the request.//// Note: If you use this method with register_globals turned on, the variables will be// automatically globalled upon startup, (ie. when you create the object).//// Note: If you register a variable that is not set when the script finishes, it will// registered as NULL.////// *** You are strongly recommended to use only one method of the two above. ***//// (In fact if you use the register() function with register_globals Off, you have to// use the $_APP method to get at the data).class Cache_Application extends Cache { var $data; var $id; var $group; var $registered_vars; /** * Constructor * * @param string Name of container class * @param array Array with container class options */ function Cache_Application($container = 'file', $container_options = array('cache_dir' => '/tmp/', 'filename_prefix' => 'cache_'), $id = 'application_var', $group = 'application_cache') { $this->id = $id; $this->group = $group; $this->registered_vars = array(); $this->Cache($container, $container_options); $this->data = $this->isCached($this->id, $this->group) ? unserialize($this->get($this->id, $this->group)) : array(); // If register_globals on, global all registered variables if (ini_get('register_globals') AND is_array($this->data)) { foreach ($this->data as $key => $value) { global $$key; $$key = $value; } } } /** * Destructor * * Gets values of all registered variables and stores them. Then calls save() to * write data away. */ function _Cache_Application() { // Get contents of all registered variables if (is_array($this->registered_vars) AND !empty($this->registered_vars)) { foreach ($this->registered_vars as $varname) { global $$varname; $this->data[$varname] = $$varname; } } // Save the data $this->save($this->id, serialize($this->data), 0, $this->group); } /** * register() * * Registers a variable to be stored. * * @param string Name of variable to register * @param mixed Optional data to store */ function register($varname, $data = null) { if (isset($data)) { $this->data[$varname] = $data; } else { $this->registered_vars[] = $varname; } } /** * unregister() * * Unregisters a variable from being stored. * * @param string Name of variable to unregister */ function unregister($varname) { if (isset($this->data[$varname])) { unset($this->data[$varname]); } } /** * clear() * * Removes all stored data */ function clear() { $this->data = array(); } /** * getData() * * Use this to get a reference to the data to manipulate * in calling script. Eg. $_APP =& $obj->getData(); * * @return mixed A reference to the data */ function &getData() { return $this->data; }}?>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?