mirror of
https://github.com/renbaoshuo/S2OJ.git
synced 2024-11-27 00:16:21 +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.
58 lines
1.6 KiB
PHP
58 lines
1.6 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Component of HTMLPurifier_AttrContext that accumulates IDs to prevent dupes
|
|
* @note In Slashdot-speak, dupe means duplicate.
|
|
* @note The default constructor does not accept $config or $context objects:
|
|
* use must use the static build() factory method to perform initialization.
|
|
*/
|
|
class HTMLPurifier_IDAccumulator
|
|
{
|
|
|
|
/**
|
|
* Lookup table of IDs we've accumulated.
|
|
* @public
|
|
*/
|
|
public $ids = array();
|
|
|
|
/**
|
|
* Builds an IDAccumulator, also initializing the default blacklist
|
|
* @param HTMLPurifier_Config $config Instance of HTMLPurifier_Config
|
|
* @param HTMLPurifier_Context $context Instance of HTMLPurifier_Context
|
|
* @return HTMLPurifier_IDAccumulator Fully initialized HTMLPurifier_IDAccumulator
|
|
*/
|
|
public static function build($config, $context)
|
|
{
|
|
$id_accumulator = new HTMLPurifier_IDAccumulator();
|
|
$id_accumulator->load($config->get('Attr.IDBlacklist'));
|
|
return $id_accumulator;
|
|
}
|
|
|
|
/**
|
|
* Add an ID to the lookup table.
|
|
* @param string $id ID to be added.
|
|
* @return bool status, true if success, false if there's a dupe
|
|
*/
|
|
public function add($id)
|
|
{
|
|
if (isset($this->ids[$id])) {
|
|
return false;
|
|
}
|
|
return $this->ids[$id] = true;
|
|
}
|
|
|
|
/**
|
|
* Load a list of IDs into the lookup table
|
|
* @param $array_of_ids Array of IDs to load
|
|
* @note This function doesn't care about duplicates
|
|
*/
|
|
public function load($array_of_ids)
|
|
{
|
|
foreach ($array_of_ids as $id) {
|
|
$this->ids[$id] = true;
|
|
}
|
|
}
|
|
}
|
|
|
|
// vim: et sw=4 sts=4
|