Return to htmlentities21.phpt CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / ext / standard / tests / strings |
1.1 misho 1: --TEST-- 2: htmlentities() / htmlspecialchars() ENT_DISALLOWED charset variation 3: --FILE-- 4: <?php 5: $tests = array( 6: 0x00, //C0 7: 0x01, 8: 0x09, 9: 0x0A, 10: 0x0B, 11: 0x0C, 12: 0x0D, 13: 0x0E, 14: 0x1F, 15: 0x20, //allowed always 16: 0x7F, //DEL 17: 0x80, //C1 18: 0x9F, 19: 0xA0, //allowed always 20: ); 21: 22: function test($flag, $charset) { 23: global $tests; 24: $i = -1; 25: error_reporting(-1 & ~E_STRICT); 26: foreach ($tests as $test) { 27: $test = chr($test); 28: $i++; 29: $a = htmlentities($test, $flag | ENT_DISALLOWED, $charset); 30: $b = htmlspecialchars($test, $flag | ENT_DISALLOWED, $charset); 31: if ($a == "" && $b == "") { echo sprintf("%05X", $tests[$i]), ": INVALID SEQUENCE\n"; continue; } 32: echo sprintf("%05X", $tests[$i]), ": ", bin2hex($a), " ", bin2hex($b), "\n"; 33: } 34: error_reporting(-1); 35: } 36: 37: echo "*** Testing HTML 4.01/Windows-1251 ***\n"; 38: 39: test(ENT_HTML401, "Windows-1251"); 40: 41: echo "\n*** Testing XHTML 1.0/Windows-1251 ***\n"; 42: 43: test(ENT_XHTML, "Windows-1251"); 44: 45: echo "\n*** Testing HTML 5/Windows-1251 ***\n"; 46: 47: test(ENT_HTML5, "Windows-1251"); 48: 49: echo "\n*** Testing XML 1.0/Windows-1251 ***\n"; 50: 51: test(ENT_XML1, "Windows-1251"); 52: 53: echo "\n*** Testing HTML 4.01/SJIS ***\n"; 54: 55: test(ENT_HTML401, "SJIS"); 56: 57: echo "\n*** Testing XHTML 1.0/SJIS ***\n"; 58: 59: test(ENT_XHTML, "SJIS"); 60: 61: echo "\n*** Testing HTML 5/SJIS ***\n"; 62: 63: test(ENT_HTML5, "SJIS"); 64: 65: echo "\n*** Testing XML 1.0/SJIS ***\n"; 66: 67: test(ENT_XML1, "SJIS"); 68: 69: 70: ?> 71: --EXPECT-- 72: *** Testing HTML 4.01/Windows-1251 *** 73: 00000: 262378464646443b 262378464646443b 74: 00001: 262378464646443b 262378464646443b 75: 00009: 09 09 76: 0000A: 0a 0a 77: 0000B: 262378464646443b 262378464646443b 78: 0000C: 262378464646443b 262378464646443b 79: 0000D: 0d 0d 80: 0000E: 262378464646443b 262378464646443b 81: 0001F: 262378464646443b 262378464646443b 82: 00020: 20 20 83: 0007F: 262378464646443b 7f 84: 00080: 80 80 85: 0009F: 9f 9f 86: 000A0: 266e6273703b a0 87: 88: *** Testing XHTML 1.0/Windows-1251 *** 89: 00000: 262378464646443b 262378464646443b 90: 00001: 262378464646443b 262378464646443b 91: 00009: 09 09 92: 0000A: 0a 0a 93: 0000B: 262378464646443b 262378464646443b 94: 0000C: 262378464646443b 262378464646443b 95: 0000D: 0d 0d 96: 0000E: 262378464646443b 262378464646443b 97: 0001F: 262378464646443b 262378464646443b 98: 00020: 20 20 99: 0007F: 7f 7f 100: 00080: 80 80 101: 0009F: 9f 9f 102: 000A0: 266e6273703b a0 103: 104: *** Testing HTML 5/Windows-1251 *** 105: 00000: 262378464646443b 262378464646443b 106: 00001: 262378464646443b 262378464646443b 107: 00009: 265461623b 09 108: 0000A: 264e65774c696e653b 0a 109: 0000B: 262378464646443b 262378464646443b 110: 0000C: 0c 0c 111: 0000D: 0d 0d 112: 0000E: 262378464646443b 262378464646443b 113: 0001F: 262378464646443b 262378464646443b 114: 00020: 20 20 115: 0007F: 262378464646443b 7f 116: 00080: 26444a63793b 80 117: 0009F: 26647a63793b 9f 118: 000A0: 266e6273703b a0 119: 120: *** Testing XML 1.0/Windows-1251 *** 121: 00000: 262378464646443b 262378464646443b 122: 00001: 262378464646443b 262378464646443b 123: 00009: 09 09 124: 0000A: 0a 0a 125: 0000B: 262378464646443b 262378464646443b 126: 0000C: 262378464646443b 262378464646443b 127: 0000D: 0d 0d 128: 0000E: 262378464646443b 262378464646443b 129: 0001F: 262378464646443b 262378464646443b 130: 00020: 20 20 131: 0007F: 7f 7f 132: 00080: 80 80 133: 0009F: 9f 9f 134: 000A0: a0 a0 135: 136: *** Testing HTML 4.01/SJIS *** 137: 00000: 262378464646443b 262378464646443b 138: 00001: 262378464646443b 262378464646443b 139: 00009: 09 09 140: 0000A: 0a 0a 141: 0000B: 262378464646443b 262378464646443b 142: 0000C: 262378464646443b 262378464646443b 143: 0000D: 0d 0d 144: 0000E: 262378464646443b 262378464646443b 145: 0001F: 262378464646443b 262378464646443b 146: 00020: 20 20 147: 0007F: 7f 7f 148: 00080: INVALID SEQUENCE 149: 0009F: INVALID SEQUENCE 150: 000A0: INVALID SEQUENCE 151: 152: *** Testing XHTML 1.0/SJIS *** 153: 00000: 262378464646443b 262378464646443b 154: 00001: 262378464646443b 262378464646443b 155: 00009: 09 09 156: 0000A: 0a 0a 157: 0000B: 262378464646443b 262378464646443b 158: 0000C: 262378464646443b 262378464646443b 159: 0000D: 0d 0d 160: 0000E: 262378464646443b 262378464646443b 161: 0001F: 262378464646443b 262378464646443b 162: 00020: 20 20 163: 0007F: 7f 7f 164: 00080: INVALID SEQUENCE 165: 0009F: INVALID SEQUENCE 166: 000A0: INVALID SEQUENCE 167: 168: *** Testing HTML 5/SJIS *** 169: 00000: 262378464646443b 262378464646443b 170: 00001: 262378464646443b 262378464646443b 171: 00009: 09 09 172: 0000A: 0a 0a 173: 0000B: 262378464646443b 262378464646443b 174: 0000C: 0c 0c 175: 0000D: 0d 0d 176: 0000E: 262378464646443b 262378464646443b 177: 0001F: 262378464646443b 262378464646443b 178: 00020: 20 20 179: 0007F: 7f 7f 180: 00080: INVALID SEQUENCE 181: 0009F: INVALID SEQUENCE 182: 000A0: INVALID SEQUENCE 183: 184: *** Testing XML 1.0/SJIS *** 185: 00000: 262378464646443b 262378464646443b 186: 00001: 262378464646443b 262378464646443b 187: 00009: 09 09 188: 0000A: 0a 0a 189: 0000B: 262378464646443b 262378464646443b 190: 0000C: 262378464646443b 262378464646443b 191: 0000D: 0d 0d 192: 0000E: 262378464646443b 262378464646443b 193: 0001F: 262378464646443b 262378464646443b 194: 00020: 20 20 195: 0007F: 7f 7f 196: 00080: INVALID SEQUENCE 197: 0009F: INVALID SEQUENCE 198: 000A0: INVALID SEQUENCE