1--TEST-- 2Test mb_ereg() function : usage variations - different regex features in $pattern 3--SKIPIF-- 4<?php 5extension_loaded('mbstring') or die('skip'); 6function_exists('mb_ereg') or die("skip mb_ereg() is not available in this build"); 7?> 8--FILE-- 9<?php 10/* 11 * Testing the following regular expression features match correctly: 12 * 1. definite quantifiers 13 * 2. Alternation 14 * 3. subpatterns in parentheses 15 */ 16 17echo "*** Testing mb_ereg() : usage variations ***\n"; 18 19if(mb_regex_encoding('utf-8') == true) { 20 echo "Regex encoding set to utf-8\n"; 21} else { 22 echo "Could not set regex encoding to utf-8\n"; 23} 24 25$string_ascii = 'This is an English string. 0123456789.'; 26$regex_ascii = '([A-Z]\w{1,4}is( [aeiou]|h)) ?.*\.\s[0-9]+(5([6-9][79]){2})[[:punct:]]$'; 27var_dump(mb_ereg($regex_ascii, $string_ascii, $regs_ascii)); 28base64_encode_var_dump($regs_ascii); 29 30$string_mb = base64_decode('zpHPhc+Ez4wgzrXOr869zrHOuSDOtc67zrvOt869zrnOus+MIM66zrXOr868zrXOvc6/LiAwMTIzNDU2Nzg5Lg=='); 31$regex_mb = base64_decode("W86RLc6pXShcdysgKSvOtVvOsS3PiVxzXSvOui4qKM+MfM6/KS4qXC5cc1swLTldKyg1KFs2LTldWzc5XSl7Mn0pW1s6cHVuY3Q6XV0k"); 32var_dump(mb_ereg($regex_mb, $string_mb, $regs_mb)); 33base64_encode_var_dump($regs_mb); 34 35/** 36 * replicate a var dump of an array but outputted string values are base64 encoded 37 * 38 * @param array $regs 39 */ 40function base64_encode_var_dump($regs) { 41 if ($regs) { 42 echo "array(" . count($regs) . ") {\n"; 43 foreach ($regs as $key => $value) { 44 echo " [$key]=>\n "; 45 if (is_string($value)) { 46 var_dump(base64_encode($value)); 47 } else { 48 var_dump($value); 49 } 50 } 51 echo "}\n"; 52 } else { 53 echo "NULL\n"; 54 } 55} 56 57echo "Done"; 58 59?> 60--EXPECT-- 61*** Testing mb_ereg() : usage variations *** 62Regex encoding set to utf-8 63bool(true) 64array(5) { 65 [0]=> 66 string(52) "VGhpcyBpcyBhbiBFbmdsaXNoIHN0cmluZy4gMDEyMzQ1Njc4OS4=" 67 [1]=> 68 string(8) "VGhpcyBp" 69 [2]=> 70 string(4) "IGk=" 71 [3]=> 72 string(8) "NTY3ODk=" 73 [4]=> 74 string(4) "ODk=" 75} 76bool(true) 77array(5) { 78 [0]=> 79 string(88) "zpHPhc+Ez4wgzrXOr869zrHOuSDOtc67zrvOt869zrnOus+MIM66zrXOr868zrXOvc6/LiAwMTIzNDU2Nzg5Lg==" 80 [1]=> 81 string(16) "zrXOr869zrHOuSA=" 82 [2]=> 83 string(4) "zr8=" 84 [3]=> 85 string(8) "NTY3ODk=" 86 [4]=> 87 string(4) "ODk=" 88} 89Done 90