49 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			PHP
		
	
	
		
		
			
		
	
	
			49 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			PHP
		
	
	
|  | <?php | ||
|  | 
 | ||
|  | /** | ||
|  |  * Object that provides entity lookup table from entity name to character | ||
|  |  */ | ||
|  | class HTMLPurifier_EntityLookup | ||
|  | { | ||
|  |     /** | ||
|  |      * Assoc array of entity name to character represented. | ||
|  |      * @type array | ||
|  |      */ | ||
|  |     public $table; | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Sets up the entity lookup table from the serialized file contents. | ||
|  |      * @param bool $file | ||
|  |      * @note The serialized contents are versioned, but were generated | ||
|  |      *       using the maintenance script generate_entity_file.php | ||
|  |      * @warning This is not in constructor to help enforce the Singleton | ||
|  |      */ | ||
|  |     public function setup($file = false) | ||
|  |     { | ||
|  |         if (!$file) { | ||
|  |             $file = HTMLPURIFIER_PREFIX . '/HTMLPurifier/EntityLookup/entities.ser'; | ||
|  |         } | ||
|  |         $this->table = unserialize(file_get_contents($file)); | ||
|  |     } | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Retrieves sole instance of the object. | ||
|  |      * @param bool|HTMLPurifier_EntityLookup $prototype Optional prototype of custom lookup table to overload with. | ||
|  |      * @return HTMLPurifier_EntityLookup | ||
|  |      */ | ||
|  |     public static function instance($prototype = false) | ||
|  |     { | ||
|  |         // no references, since PHP doesn't copy unless modified
 | ||
|  |         static $instance = null; | ||
|  |         if ($prototype) { | ||
|  |             $instance = $prototype; | ||
|  |         } elseif (!$instance) { | ||
|  |             $instance = new HTMLPurifier_EntityLookup(); | ||
|  |             $instance->setup(); | ||
|  |         } | ||
|  |         return $instance; | ||
|  |     } | ||
|  | } | ||
|  | 
 | ||
|  | // vim: et sw=4 sts=4
 |