| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 | <?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
 |