diff options
Diffstat (limited to 'library/HTMLPurifier/StringHash.php')
-rw-r--r-- | library/HTMLPurifier/StringHash.php | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/library/HTMLPurifier/StringHash.php b/library/HTMLPurifier/StringHash.php new file mode 100644 index 000000000..62085c5c2 --- /dev/null +++ b/library/HTMLPurifier/StringHash.php @@ -0,0 +1,39 @@ +<?php + +/** + * This is in almost every respect equivalent to an array except + * that it keeps track of which keys were accessed. + * + * @warning For the sake of backwards compatibility with early versions + * of PHP 5, you must not use the $hash[$key] syntax; if you do + * our version of offsetGet is never called. + */ +class HTMLPurifier_StringHash extends ArrayObject +{ + protected $accessed = array(); + + /** + * Retrieves a value, and logs the access. + */ + public function offsetGet($index) { + $this->accessed[$index] = true; + return parent::offsetGet($index); + } + + /** + * Returns a lookup array of all array indexes that have been accessed. + * @return Array in form array($index => true). + */ + public function getAccessed() { + return $this->accessed; + } + + /** + * Resets the access array. + */ + public function resetAccessed() { + $this->accessed = array(); + } +} + +// vim: et sw=4 sts=4 |