basic-functionality.phpt 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. --TEST--
  2. IntlChar basic functionality
  3. --SKIPIF--
  4. <?php if (!extension_loaded('intl')) die("skip requires ext/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. --EXPECT--
  49. Codepoint range: 0000-10ffff
  50. Codepoint U+0050
  51. hasBinaryProperty(Alphabetic): true
  52. isUAlphabetic(): bool(true)
  53. isUUppercase(): bool(true)
  54. isupper(): bool(true)
  55. isULowercase(): bool(false)
  56. islower(): bool(false)
  57. isUWhiteSpace(): bool(false)
  58. isWhitespace(): bool(false)
  59. istitle(): bool(false)
  60. isdigit(): bool(false)
  61. isalpha(): bool(true)
  62. isalnum(): bool(true)
  63. isxdigit(): bool(false)
  64. ispunct(): bool(false)
  65. ispunct(): bool(false)
  66. isgraph(): bool(true)
  67. isblank(): bool(false)
  68. isdefined(): bool(true)
  69. isspace(): bool(false)
  70. iscntrl(): bool(false)
  71. isMirrored(): bool(false)
  72. isIDStart(): bool(true)
  73. isIDPart(): bool(true)
  74. getBlockCode(): int(1)
  75. charName(): string(22) "LATIN CAPITAL LETTER P"
  76. charAge(): 1.1.0.0
  77. Codepoint U+00df
  78. hasBinaryProperty(Alphabetic): true
  79. isUAlphabetic(): bool(true)
  80. isUUppercase(): bool(false)
  81. isupper(): bool(false)
  82. isULowercase(): bool(true)
  83. islower(): bool(true)
  84. isUWhiteSpace(): bool(false)
  85. isWhitespace(): bool(false)
  86. istitle(): bool(false)
  87. isdigit(): bool(false)
  88. isalpha(): bool(true)
  89. isalnum(): bool(true)
  90. isxdigit(): bool(false)
  91. ispunct(): bool(false)
  92. ispunct(): bool(false)
  93. isgraph(): bool(true)
  94. isblank(): bool(false)
  95. isdefined(): bool(true)
  96. isspace(): bool(false)
  97. iscntrl(): bool(false)
  98. isMirrored(): bool(false)
  99. isIDStart(): bool(true)
  100. isIDPart(): bool(true)
  101. getBlockCode(): int(2)
  102. charName(): string(26) "LATIN SMALL LETTER SHARP S"
  103. charAge(): 1.1.0.0
  104. Codepoint U+2603
  105. hasBinaryProperty(Alphabetic): false
  106. isUAlphabetic(): bool(false)
  107. isUUppercase(): bool(false)
  108. isupper(): bool(false)
  109. isULowercase(): bool(false)
  110. islower(): bool(false)
  111. isUWhiteSpace(): bool(false)
  112. isWhitespace(): bool(false)
  113. istitle(): bool(false)
  114. isdigit(): bool(false)
  115. isalpha(): bool(false)
  116. isalnum(): bool(false)
  117. isxdigit(): bool(false)
  118. ispunct(): bool(false)
  119. ispunct(): bool(false)
  120. isgraph(): bool(true)
  121. isblank(): bool(false)
  122. isdefined(): bool(true)
  123. isspace(): bool(false)
  124. iscntrl(): bool(false)
  125. isMirrored(): bool(false)
  126. isIDStart(): bool(false)
  127. isIDPart(): bool(false)
  128. getBlockCode(): int(55)
  129. charName(): string(7) "SNOWMAN"
  130. charAge(): 1.1.0.0
  131. Sample range of codepoints: U+2600-U+260F
  132. U+2600 BLACK SUN WITH RAYS
  133. U+2601 CLOUD
  134. U+2602 UMBRELLA
  135. U+2603 SNOWMAN
  136. U+2604 COMET
  137. U+2605 BLACK STAR
  138. U+2606 WHITE STAR
  139. U+2607 LIGHTNING
  140. U+2608 THUNDERSTORM
  141. U+2609 SUN
  142. U+260a ASCENDING NODE
  143. U+260b DESCENDING NODE
  144. U+260c CONJUNCTION
  145. U+260d OPPOSITION
  146. U+260e BLACK TELEPHONE
  147. U+260f WHITE TELEPHONE
  148. RECYCLING SYMBOL FOR TYPE-1 PLASTICS => int(9843)