basic-functionality.phpt 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. --TEST--
  2. IntlChar basic functionality
  3. --EXTENSIONS--
  4. intl
  5. --FILE--
  6. <?php
  7. function unicode_info($cp) {
  8. $proplist = array(
  9. IntlChar::PROPERTY_ALPHABETIC,
  10. );
  11. $methodList = array(
  12. 'isUAlphabetic',
  13. 'isUUppercase', 'isupper',
  14. 'isULowercase', 'islower',
  15. 'isUWhiteSpace', 'isWhitespace',
  16. 'istitle', 'isdigit', 'isalpha', 'isalnum',
  17. 'isxdigit', 'ispunct', 'ispunct', 'isgraph',
  18. 'isblank', 'isdefined', 'isspace', 'iscntrl',
  19. 'isMirrored', 'isIDStart', 'isIDPart',
  20. 'getBlockCode', 'charName',
  21. );
  22. $ncp = IntlChar::ord($cp);
  23. printf("Codepoint U+%04x\n", $ncp);
  24. foreach($proplist as $prop) {
  25. printf(" hasBinaryProperty(%s): %s\n",
  26. IntlChar::getPropertyName($prop),
  27. IntlChar::hasBinaryProperty($cp, $prop) ? "true" : "false"
  28. );
  29. }
  30. foreach($methodList as $method) {
  31. echo " $method(): ";
  32. var_dump(IntlChar::$method($cp));
  33. }
  34. echo " charAge(): ", implode('.', IntlChar::charAge($cp)), "\n";
  35. echo "\n";
  36. }
  37. printf("Codepoint range: %04x-%04x\n", IntlChar::CODEPOINT_MIN, IntlChar::CODEPOINT_MAX);
  38. $codepoints = array('P', 0xDF, 0x2603);
  39. foreach($codepoints as $cp) {
  40. unicode_info($cp);
  41. }
  42. echo "Sample range of codepoints: U+2600-U+260F\n";
  43. IntlChar::enumCharNames(0x2600, 0x2610, function($cp, $nc, $name) {
  44. printf("U+%04x %s\n", $cp, $name);
  45. });
  46. echo "RECYCLING SYMBOL FOR TYPE-1 PLASTICS => ";
  47. var_dump(IntlChar::charFromName("RECYCLING SYMBOL FOR TYPE-1 PLASTICS"));
  48. ?>
  49. --EXPECT--
  50. Codepoint range: 0000-10ffff
  51. Codepoint U+0050
  52. hasBinaryProperty(Alphabetic): true
  53. isUAlphabetic(): bool(true)
  54. isUUppercase(): bool(true)
  55. isupper(): bool(true)
  56. isULowercase(): bool(false)
  57. islower(): bool(false)
  58. isUWhiteSpace(): bool(false)
  59. isWhitespace(): bool(false)
  60. istitle(): bool(false)
  61. isdigit(): bool(false)
  62. isalpha(): bool(true)
  63. isalnum(): bool(true)
  64. isxdigit(): bool(false)
  65. ispunct(): bool(false)
  66. ispunct(): bool(false)
  67. isgraph(): bool(true)
  68. isblank(): bool(false)
  69. isdefined(): bool(true)
  70. isspace(): bool(false)
  71. iscntrl(): bool(false)
  72. isMirrored(): bool(false)
  73. isIDStart(): bool(true)
  74. isIDPart(): bool(true)
  75. getBlockCode(): int(1)
  76. charName(): string(22) "LATIN CAPITAL LETTER P"
  77. charAge(): 1.1.0.0
  78. Codepoint U+00df
  79. hasBinaryProperty(Alphabetic): true
  80. isUAlphabetic(): bool(true)
  81. isUUppercase(): bool(false)
  82. isupper(): bool(false)
  83. isULowercase(): bool(true)
  84. islower(): bool(true)
  85. isUWhiteSpace(): bool(false)
  86. isWhitespace(): bool(false)
  87. istitle(): bool(false)
  88. isdigit(): bool(false)
  89. isalpha(): bool(true)
  90. isalnum(): bool(true)
  91. isxdigit(): bool(false)
  92. ispunct(): bool(false)
  93. ispunct(): bool(false)
  94. isgraph(): bool(true)
  95. isblank(): bool(false)
  96. isdefined(): bool(true)
  97. isspace(): bool(false)
  98. iscntrl(): bool(false)
  99. isMirrored(): bool(false)
  100. isIDStart(): bool(true)
  101. isIDPart(): bool(true)
  102. getBlockCode(): int(2)
  103. charName(): string(26) "LATIN SMALL LETTER SHARP S"
  104. charAge(): 1.1.0.0
  105. Codepoint U+2603
  106. hasBinaryProperty(Alphabetic): false
  107. isUAlphabetic(): bool(false)
  108. isUUppercase(): bool(false)
  109. isupper(): bool(false)
  110. isULowercase(): bool(false)
  111. islower(): bool(false)
  112. isUWhiteSpace(): bool(false)
  113. isWhitespace(): bool(false)
  114. istitle(): bool(false)
  115. isdigit(): bool(false)
  116. isalpha(): bool(false)
  117. isalnum(): bool(false)
  118. isxdigit(): bool(false)
  119. ispunct(): bool(false)
  120. ispunct(): bool(false)
  121. isgraph(): bool(true)
  122. isblank(): bool(false)
  123. isdefined(): bool(true)
  124. isspace(): bool(false)
  125. iscntrl(): bool(false)
  126. isMirrored(): bool(false)
  127. isIDStart(): bool(false)
  128. isIDPart(): bool(false)
  129. getBlockCode(): int(55)
  130. charName(): string(7) "SNOWMAN"
  131. charAge(): 1.1.0.0
  132. Sample range of codepoints: U+2600-U+260F
  133. U+2600 BLACK SUN WITH RAYS
  134. U+2601 CLOUD
  135. U+2602 UMBRELLA
  136. U+2603 SNOWMAN
  137. U+2604 COMET
  138. U+2605 BLACK STAR
  139. U+2606 WHITE STAR
  140. U+2607 LIGHTNING
  141. U+2608 THUNDERSTORM
  142. U+2609 SUN
  143. U+260a ASCENDING NODE
  144. U+260b DESCENDING NODE
  145. U+260c CONJUNCTION
  146. U+260d OPPOSITION
  147. U+260e BLACK TELEPHONE
  148. U+260f WHITE TELEPHONE
  149. RECYCLING SYMBOL FOR TYPE-1 PLASTICS => int(9843)