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 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156
|
--TEST--
IntlChar basic functionality
--EXTENSIONS--
intl
--FILE--
<?php
function unicode_info($cp) {
$proplist = array(
IntlChar::PROPERTY_ALPHABETIC,
);
$methodList = array(
'isUAlphabetic',
'isUUppercase', 'isupper',
'isULowercase', 'islower',
'isUWhiteSpace', 'isWhitespace',
'istitle', 'isdigit', 'isalpha', 'isalnum',
'isxdigit', 'ispunct', 'ispunct', 'isgraph',
'isblank', 'isdefined', 'isspace', 'iscntrl',
'isMirrored', 'isIDStart', 'isIDPart',
'getBlockCode', 'charName',
);
$ncp = IntlChar::ord($cp);
printf("Codepoint U+%04x\n", $ncp);
foreach($proplist as $prop) {
printf(" hasBinaryProperty(%s): %s\n",
IntlChar::getPropertyName($prop),
IntlChar::hasBinaryProperty($cp, $prop) ? "true" : "false"
);
}
foreach($methodList as $method) {
echo " $method(): ";
var_dump(IntlChar::$method($cp));
}
echo " charAge(): ", implode('.', IntlChar::charAge($cp)), "\n";
echo "\n";
}
printf("Codepoint range: %04x-%04x\n", IntlChar::CODEPOINT_MIN, IntlChar::CODEPOINT_MAX);
$codepoints = array('P', 0xDF, 0x2603);
foreach($codepoints as $cp) {
unicode_info($cp);
}
echo "Sample range of codepoints: U+2600-U+260F\n";
IntlChar::enumCharNames(0x2600, 0x2610, function($cp, $nc, $name) {
printf("U+%04x %s\n", $cp, $name);
});
echo "RECYCLING SYMBOL FOR TYPE-1 PLASTICS => ";
var_dump(IntlChar::charFromName("RECYCLING SYMBOL FOR TYPE-1 PLASTICS"));
?>
--EXPECT--
Codepoint range: 0000-10ffff
Codepoint U+0050
hasBinaryProperty(Alphabetic): true
isUAlphabetic(): bool(true)
isUUppercase(): bool(true)
isupper(): bool(true)
isULowercase(): bool(false)
islower(): bool(false)
isUWhiteSpace(): bool(false)
isWhitespace(): bool(false)
istitle(): bool(false)
isdigit(): bool(false)
isalpha(): bool(true)
isalnum(): bool(true)
isxdigit(): bool(false)
ispunct(): bool(false)
ispunct(): bool(false)
isgraph(): bool(true)
isblank(): bool(false)
isdefined(): bool(true)
isspace(): bool(false)
iscntrl(): bool(false)
isMirrored(): bool(false)
isIDStart(): bool(true)
isIDPart(): bool(true)
getBlockCode(): int(1)
charName(): string(22) "LATIN CAPITAL LETTER P"
charAge(): 1.1.0.0
Codepoint U+00df
hasBinaryProperty(Alphabetic): true
isUAlphabetic(): bool(true)
isUUppercase(): bool(false)
isupper(): bool(false)
isULowercase(): bool(true)
islower(): bool(true)
isUWhiteSpace(): bool(false)
isWhitespace(): bool(false)
istitle(): bool(false)
isdigit(): bool(false)
isalpha(): bool(true)
isalnum(): bool(true)
isxdigit(): bool(false)
ispunct(): bool(false)
ispunct(): bool(false)
isgraph(): bool(true)
isblank(): bool(false)
isdefined(): bool(true)
isspace(): bool(false)
iscntrl(): bool(false)
isMirrored(): bool(false)
isIDStart(): bool(true)
isIDPart(): bool(true)
getBlockCode(): int(2)
charName(): string(26) "LATIN SMALL LETTER SHARP S"
charAge(): 1.1.0.0
Codepoint U+2603
hasBinaryProperty(Alphabetic): false
isUAlphabetic(): bool(false)
isUUppercase(): bool(false)
isupper(): bool(false)
isULowercase(): bool(false)
islower(): bool(false)
isUWhiteSpace(): bool(false)
isWhitespace(): bool(false)
istitle(): bool(false)
isdigit(): bool(false)
isalpha(): bool(false)
isalnum(): bool(false)
isxdigit(): bool(false)
ispunct(): bool(false)
ispunct(): bool(false)
isgraph(): bool(true)
isblank(): bool(false)
isdefined(): bool(true)
isspace(): bool(false)
iscntrl(): bool(false)
isMirrored(): bool(false)
isIDStart(): bool(false)
isIDPart(): bool(false)
getBlockCode(): int(55)
charName(): string(7) "SNOWMAN"
charAge(): 1.1.0.0
Sample range of codepoints: U+2600-U+260F
U+2600 BLACK SUN WITH RAYS
U+2601 CLOUD
U+2602 UMBRELLA
U+2603 SNOWMAN
U+2604 COMET
U+2605 BLACK STAR
U+2606 WHITE STAR
U+2607 LIGHTNING
U+2608 THUNDERSTORM
U+2609 SUN
U+260a ASCENDING NODE
U+260b DESCENDING NODE
U+260c CONJUNCTION
U+260d OPPOSITION
U+260e BLACK TELEPHONE
U+260f WHITE TELEPHONE
RECYCLING SYMBOL FOR TYPE-1 PLASTICS => int(9843)
|