Annotation of embedaddon/php/ext/standard/tests/strings/htmlentities_html4.phpt, revision 1.1.1.1

1.1       misho       1: --TEST--
                      2: htmlentities() conformance check (HTML 4)
                      3: --FILE--
                      4: <?php
                      5: function utf32_utf8($k) {
                      6:        if ($k < 0x80) {
                      7:                $retval = pack('C', $k);
                      8:        } else if ($k < 0x800) {
                      9:                $retval = pack('C2', 
                     10:             0xc0 | ($k >> 6),
                     11:             0x80 | ($k & 0x3f));
                     12:        } else if ($k < 0x10000) {
                     13:         $retval = pack('C3',
                     14:             0xe0 | ($k >> 12),
                     15:             0x80 | (($k >> 6) & 0x3f),
                     16:             0x80 | ($k & 0x3f));
                     17:        } else if ($k < 0x200000) {
                     18:         $retval = pack('C4',
                     19:             0xf0 | ($k >> 18),
                     20:             0x80 | (($k >> 12) & 0x3f),
                     21:             0x80 | (($k >> 6) & 0x3f),
                     22:             0x80 | ($k & 0x3f));
                     23:        } else if ($k < 0x4000000) {
                     24:         $retval = pack('C5',
                     25:             0xf8 | ($k >> 24),
                     26:             0x80 | (($k >> 18) & 0x3f),
                     27:             0x80 | (($k >> 12) & 0x3f),
                     28:             0x80 | (($k >> 6) & 0x3f),
                     29:             0x80 | ($k & 0x3f));
                     30:        } else {
                     31:         $retval = pack('C6',
                     32:             0xfc | ($k >> 30),
                     33:             0x80 | (($k >> 24) & 0x3f),
                     34:             0x80 | (($k >> 18) & 0x3f),
                     35:             0x80 | (($k >> 12) & 0x3f),
                     36:             0x80 | (($k >> 6) & 0x3f),
                     37:             0x80 | ($k & 0x3f));
                     38:        }
                     39:        return $retval;
                     40: }
                     41: 
                     42: $table = get_html_translation_table(HTML_ENTITIES, ENT_QUOTES, 'UTF-8');
                     43: 
                     44: for ($i = 0; $i < 0x2710; $i++) {
                     45:     if ($i >= 0xd800 && $i < 0xe000)
                     46:         continue;
                     47:     $str = utf32_utf8($i);
                     48:        if (isset($table[$str])) {
                     49:                printf("%s\tU+%05X\n", $table[$str], $i);
                     50:                unset($table[$str]);
                     51:        }
                     52: }
                     53: 
                     54: if (!empty($table)) {
                     55:        echo "Not matched entities: ";
                     56:        var_dump($table);
                     57: }
                     58: 
                     59: ?>
                     60: --EXPECT--
                     61: &quot; U+00022
                     62: &amp;  U+00026
                     63: &#039; U+00027
                     64: &lt;   U+0003C
                     65: &gt;   U+0003E
                     66: &nbsp; U+000A0
                     67: &iexcl;        U+000A1
                     68: &cent; U+000A2
                     69: &pound;        U+000A3
                     70: &curren;       U+000A4
                     71: &yen;  U+000A5
                     72: &brvbar;       U+000A6
                     73: &sect; U+000A7
                     74: &uml;  U+000A8
                     75: &copy; U+000A9
                     76: &ordf; U+000AA
                     77: &laquo;        U+000AB
                     78: &not;  U+000AC
                     79: &shy;  U+000AD
                     80: &reg;  U+000AE
                     81: &macr; U+000AF
                     82: &deg;  U+000B0
                     83: &plusmn;       U+000B1
                     84: &sup2; U+000B2
                     85: &sup3; U+000B3
                     86: &acute;        U+000B4
                     87: &micro;        U+000B5
                     88: &para; U+000B6
                     89: &middot;       U+000B7
                     90: &cedil;        U+000B8
                     91: &sup1; U+000B9
                     92: &ordm; U+000BA
                     93: &raquo;        U+000BB
                     94: &frac14;       U+000BC
                     95: &frac12;       U+000BD
                     96: &frac34;       U+000BE
                     97: &iquest;       U+000BF
                     98: &Agrave;       U+000C0
                     99: &Aacute;       U+000C1
                    100: &Acirc;        U+000C2
                    101: &Atilde;       U+000C3
                    102: &Auml; U+000C4
                    103: &Aring;        U+000C5
                    104: &AElig;        U+000C6
                    105: &Ccedil;       U+000C7
                    106: &Egrave;       U+000C8
                    107: &Eacute;       U+000C9
                    108: &Ecirc;        U+000CA
                    109: &Euml; U+000CB
                    110: &Igrave;       U+000CC
                    111: &Iacute;       U+000CD
                    112: &Icirc;        U+000CE
                    113: &Iuml; U+000CF
                    114: &ETH;  U+000D0
                    115: &Ntilde;       U+000D1
                    116: &Ograve;       U+000D2
                    117: &Oacute;       U+000D3
                    118: &Ocirc;        U+000D4
                    119: &Otilde;       U+000D5
                    120: &Ouml; U+000D6
                    121: &times;        U+000D7
                    122: &Oslash;       U+000D8
                    123: &Ugrave;       U+000D9
                    124: &Uacute;       U+000DA
                    125: &Ucirc;        U+000DB
                    126: &Uuml; U+000DC
                    127: &Yacute;       U+000DD
                    128: &THORN;        U+000DE
                    129: &szlig;        U+000DF
                    130: &agrave;       U+000E0
                    131: &aacute;       U+000E1
                    132: &acirc;        U+000E2
                    133: &atilde;       U+000E3
                    134: &auml; U+000E4
                    135: &aring;        U+000E5
                    136: &aelig;        U+000E6
                    137: &ccedil;       U+000E7
                    138: &egrave;       U+000E8
                    139: &eacute;       U+000E9
                    140: &ecirc;        U+000EA
                    141: &euml; U+000EB
                    142: &igrave;       U+000EC
                    143: &iacute;       U+000ED
                    144: &icirc;        U+000EE
                    145: &iuml; U+000EF
                    146: &eth;  U+000F0
                    147: &ntilde;       U+000F1
                    148: &ograve;       U+000F2
                    149: &oacute;       U+000F3
                    150: &ocirc;        U+000F4
                    151: &otilde;       U+000F5
                    152: &ouml; U+000F6
                    153: &divide;       U+000F7
                    154: &oslash;       U+000F8
                    155: &ugrave;       U+000F9
                    156: &uacute;       U+000FA
                    157: &ucirc;        U+000FB
                    158: &uuml; U+000FC
                    159: &yacute;       U+000FD
                    160: &thorn;        U+000FE
                    161: &yuml; U+000FF
                    162: &OElig;        U+00152
                    163: &oelig;        U+00153
                    164: &Scaron;       U+00160
                    165: &scaron;       U+00161
                    166: &Yuml; U+00178
                    167: &fnof; U+00192
                    168: &circ; U+002C6
                    169: &tilde;        U+002DC
                    170: &Alpha;        U+00391
                    171: &Beta; U+00392
                    172: &Gamma;        U+00393
                    173: &Delta;        U+00394
                    174: &Epsilon;      U+00395
                    175: &Zeta; U+00396
                    176: &Eta;  U+00397
                    177: &Theta;        U+00398
                    178: &Iota; U+00399
                    179: &Kappa;        U+0039A
                    180: &Lambda;       U+0039B
                    181: &Mu;   U+0039C
                    182: &Nu;   U+0039D
                    183: &Xi;   U+0039E
                    184: &Omicron;      U+0039F
                    185: &Pi;   U+003A0
                    186: &Rho;  U+003A1
                    187: &Sigma;        U+003A3
                    188: &Tau;  U+003A4
                    189: &Upsilon;      U+003A5
                    190: &Phi;  U+003A6
                    191: &Chi;  U+003A7
                    192: &Psi;  U+003A8
                    193: &Omega;        U+003A9
                    194: &alpha;        U+003B1
                    195: &beta; U+003B2
                    196: &gamma;        U+003B3
                    197: &delta;        U+003B4
                    198: &epsilon;      U+003B5
                    199: &zeta; U+003B6
                    200: &eta;  U+003B7
                    201: &theta;        U+003B8
                    202: &iota; U+003B9
                    203: &kappa;        U+003BA
                    204: &lambda;       U+003BB
                    205: &mu;   U+003BC
                    206: &nu;   U+003BD
                    207: &xi;   U+003BE
                    208: &omicron;      U+003BF
                    209: &pi;   U+003C0
                    210: &rho;  U+003C1
                    211: &sigmaf;       U+003C2
                    212: &sigma;        U+003C3
                    213: &tau;  U+003C4
                    214: &upsilon;      U+003C5
                    215: &phi;  U+003C6
                    216: &chi;  U+003C7
                    217: &psi;  U+003C8
                    218: &omega;        U+003C9
                    219: &thetasym;     U+003D1
                    220: &upsih;        U+003D2
                    221: &piv;  U+003D6
                    222: &ensp; U+02002
                    223: &emsp; U+02003
                    224: &thinsp;       U+02009
                    225: &zwnj; U+0200C
                    226: &zwj;  U+0200D
                    227: &lrm;  U+0200E
                    228: &rlm;  U+0200F
                    229: &ndash;        U+02013
                    230: &mdash;        U+02014
                    231: &lsquo;        U+02018
                    232: &rsquo;        U+02019
                    233: &sbquo;        U+0201A
                    234: &ldquo;        U+0201C
                    235: &rdquo;        U+0201D
                    236: &bdquo;        U+0201E
                    237: &dagger;       U+02020
                    238: &Dagger;       U+02021
                    239: &bull; U+02022
                    240: &hellip;       U+02026
                    241: &permil;       U+02030
                    242: &prime;        U+02032
                    243: &Prime;        U+02033
                    244: &lsaquo;       U+02039
                    245: &rsaquo;       U+0203A
                    246: &oline;        U+0203E
                    247: &frasl;        U+02044
                    248: &euro; U+020AC
                    249: &image;        U+02111
                    250: &weierp;       U+02118
                    251: &real; U+0211C
                    252: &trade;        U+02122
                    253: &alefsym;      U+02135
                    254: &larr; U+02190
                    255: &uarr; U+02191
                    256: &rarr; U+02192
                    257: &darr; U+02193
                    258: &harr; U+02194
                    259: &crarr;        U+021B5
                    260: &lArr; U+021D0
                    261: &uArr; U+021D1
                    262: &rArr; U+021D2
                    263: &dArr; U+021D3
                    264: &hArr; U+021D4
                    265: &forall;       U+02200
                    266: &part; U+02202
                    267: &exist;        U+02203
                    268: &empty;        U+02205
                    269: &nabla;        U+02207
                    270: &isin; U+02208
                    271: &notin;        U+02209
                    272: &ni;   U+0220B
                    273: &prod; U+0220F
                    274: &sum;  U+02211
                    275: &minus;        U+02212
                    276: &lowast;       U+02217
                    277: &radic;        U+0221A
                    278: &prop; U+0221D
                    279: &infin;        U+0221E
                    280: &ang;  U+02220
                    281: &and;  U+02227
                    282: &or;   U+02228
                    283: &cap;  U+02229
                    284: &cup;  U+0222A
                    285: &int;  U+0222B
                    286: &there4;       U+02234
                    287: &sim;  U+0223C
                    288: &cong; U+02245
                    289: &asymp;        U+02248
                    290: &ne;   U+02260
                    291: &equiv;        U+02261
                    292: &le;   U+02264
                    293: &ge;   U+02265
                    294: &sub;  U+02282
                    295: &sup;  U+02283
                    296: &nsub; U+02284
                    297: &sube; U+02286
                    298: &supe; U+02287
                    299: &oplus;        U+02295
                    300: &otimes;       U+02297
                    301: &perp; U+022A5
                    302: &sdot; U+022C5
                    303: &lceil;        U+02308
                    304: &rceil;        U+02309
                    305: &lfloor;       U+0230A
                    306: &rfloor;       U+0230B
                    307: &lang; U+02329
                    308: &rang; U+0232A
                    309: &loz;  U+025CA
                    310: &spades;       U+02660
                    311: &clubs;        U+02663
                    312: &hearts;       U+02665
                    313: &diams;        U+02666

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>