Blame view
public/vendor/masterminds/html5/src/HTML5/Parser/CharacterReference.php
1.5 KB
86143e36f Коммит вторник |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
<?php namespace Masterminds\HTML5\Parser; use Masterminds\HTML5\Entities; /** * Manage entity references. * * This is a simple resolver for HTML5 character reference entitites. See Entities for the list of supported entities. */ class CharacterReference { protected static $numeric_mask = array( 0x0, 0x2FFFF, 0, 0xFFFF, ); /** * Given a name (e.g. 'amp'), lookup the UTF-8 character ('&'). * * @param string $name The name to look up. * * @return string The character sequence. In UTF-8 this may be more than one byte. */ public static function lookupName($name) { // Do we really want to return NULL here? or FFFD return isset(Entities::$byName[$name]) ? Entities::$byName[$name] : null; } /** * Given a decimal number, return the UTF-8 character. * * @param $int * * @return false|string|string[]|null */ public static function lookupDecimal($int) { $entity = '&#' . $int . ';'; // UNTESTED: This may fail on some planes. Couldn't find full documentation // on the value of the mask array. return mb_decode_numericentity($entity, static::$numeric_mask, 'utf-8'); } /** * Given a hexidecimal number, return the UTF-8 character. * * @param $hexdec * * @return false|string|string[]|null */ public static function lookupHex($hexdec) { return static::lookupDecimal(hexdec($hexdec)); } } |