mb_ereg_basic.phpt 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. --TEST--
  2. Test mb_ereg() function : basic functionality
  3. --SKIPIF--
  4. <?php
  5. extension_loaded('mbstring') or die('skip');
  6. function_exists('mb_ereg') or die("skip mb_ereg() is not available in this build");
  7. ?>
  8. --FILE--
  9. <?php
  10. /* Prototype : int mb_ereg(string $pattern, string $string [, array $registers])
  11. * Description: Regular expression match for multibyte string
  12. * Source code: ext/mbstring/php_mbregex.c
  13. */
  14. /*
  15. * Test basic functionality of mb_ereg
  16. */
  17. echo "*** Testing mb_ereg() : basic functionality ***\n";
  18. if(mb_regex_encoding('utf-8') == true) {
  19. echo "Regex encoding set to utf-8\n";
  20. } else {
  21. echo "Could not set regex encoding to utf-8\n";
  22. }
  23. $string_ascii = b'This is an English string. 0123456789.';
  24. $regex_ascii1 = b'(.*is)+.*\.[[:blank:]][0-9]{9}';
  25. $regex_ascii2 = b'.*is+';
  26. $string_mb = base64_decode('5pel5pys6Kqe44OG44Kt44K544OI44Gn44GZ44CCMDEyMzTvvJXvvJbvvJfvvJjvvJnjgII=');
  27. $regex_mb1 = base64_decode('KOaXpeacrOiqnikuKj8oWzEtOV0rKQ==');
  28. $regex_mb2 = base64_decode('5LiW55WM');
  29. echo "\n**-- ASCII String --**\n";
  30. echo "-- Without \$regs argument--\n";
  31. var_dump(mb_ereg($regex_ascii1, $string_ascii));
  32. var_dump(mb_ereg($regex_ascii2, $string_ascii));
  33. echo "--With \$regs argument --\n";
  34. var_dump(mb_ereg($regex_ascii1, $string_ascii, $regs_ascii1));
  35. base64_encode_var_dump($regs_ascii1);
  36. var_dump(mb_ereg($regex_ascii2, $string_ascii, $regs_ascii2));
  37. base64_encode_var_dump($regs_ascii2);
  38. echo "\n**-- Multibyte String --**\n";
  39. echo "-- Without \$regs argument --\n";
  40. var_dump(mb_ereg($regex_mb1, $string_mb));
  41. var_dump(mb_ereg($regex_mb2, $string_mb));
  42. echo "-- With \$regs argument --\n";
  43. var_dump(mb_ereg($regex_mb1, $string_mb, $regs_mb1));
  44. base64_encode_var_dump($regs_mb1);
  45. var_dump(mb_ereg($regex_mb2, $string_mb, $regs_mb2));
  46. var_dump($regs_mb2);
  47. echo "Done";
  48. /**
  49. * replicate a var dump of an array but outputted string values are base64 encoded
  50. *
  51. * @param array $regs
  52. */
  53. function base64_encode_var_dump($regs) {
  54. if ($regs) {
  55. echo "array(" . count($regs) . ") {\n";
  56. foreach ($regs as $key => $value) {
  57. echo " [$key]=>\n ";
  58. if (is_string($value)) {
  59. var_dump(base64_encode($value));
  60. } else {
  61. var_dump($value);
  62. }
  63. }
  64. echo "}\n";
  65. } else {
  66. echo "NULL\n";
  67. }
  68. }
  69. ?>
  70. --EXPECT--
  71. *** Testing mb_ereg() : basic functionality ***
  72. Regex encoding set to utf-8
  73. **-- ASCII String --**
  74. -- Without $regs argument--
  75. int(1)
  76. int(1)
  77. --With $regs argument --
  78. int(36)
  79. array(2) {
  80. [0]=>
  81. string(48) "VGhpcyBpcyBhbiBFbmdsaXNoIHN0cmluZy4gMDEyMzQ1Njc4"
  82. [1]=>
  83. string(24) "VGhpcyBpcyBhbiBFbmdsaXM="
  84. }
  85. int(17)
  86. array(1) {
  87. [0]=>
  88. string(24) "VGhpcyBpcyBhbiBFbmdsaXM="
  89. }
  90. **-- Multibyte String --**
  91. -- Without $regs argument --
  92. int(1)
  93. bool(false)
  94. -- With $regs argument --
  95. int(35)
  96. array(3) {
  97. [0]=>
  98. string(48) "5pel5pys6Kqe44OG44Kt44K544OI44Gn44GZ44CCMDEyMzQ="
  99. [1]=>
  100. string(12) "5pel5pys6Kqe"
  101. [2]=>
  102. string(8) "MTIzNA=="
  103. }
  104. bool(false)
  105. NULL
  106. Done