diff options
Diffstat (limited to 'lib/htmlpurifier/library/HTMLPurifier/EntityLookup.php')
-rw-r--r-- | lib/htmlpurifier/library/HTMLPurifier/EntityLookup.php | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/lib/htmlpurifier/library/HTMLPurifier/EntityLookup.php b/lib/htmlpurifier/library/HTMLPurifier/EntityLookup.php new file mode 100644 index 000000000..b4dfce94c --- /dev/null +++ b/lib/htmlpurifier/library/HTMLPurifier/EntityLookup.php @@ -0,0 +1,44 @@ +<?php + +/** + * Object that provides entity lookup table from entity name to character + */ +class HTMLPurifier_EntityLookup { + + /** + * Assoc array of entity name to character represented. + */ + public $table; + + /** + * Sets up the entity lookup table from the serialized file contents. + * @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 Optional prototype of custom lookup table to overload with. + */ + 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 |