mb_ereg_basic.phpt 2.8 KB

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