mirror of
https://github.com/renbaoshuo/S2OJ.git
synced 2024-12-27 02:11:53 +00:00
96d4a3ecf7
Due to historical reasons, the code is in subfolder "1". With SVN removal, we place the code back and remove the annoying "1" folder.
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
|