aliases for better interoperability with the iconv extension. The mbregex
ISO 8859 aliases with underscores (ISO_8859_* and ISO8859_*) have also been
removed.
+ . mb_ereg() and mb_eregi() will now return boolean true on a successfuly
+ match. Previously they returned integer 1 if $matches was not passed, or
+ max(1, strlen($reg[0])) is $matches was passed.
- OCI8:
. The OCI-Lob class is now called OCILob, and the OCI-Collection class is now
function mb_regex_encoding(?string $encoding = null): string|bool {}
/** @param array $matches */
-function mb_ereg(string $pattern, string $string, &$matches = null): int|false {}
+function mb_ereg(string $pattern, string $string, &$matches = null): bool {}
/** @param array $matches */
-function mb_eregi(string $pattern, string $string, &$matches = null): int|false {}
+function mb_eregi(string $pattern, string $string, &$matches = null): bool {}
function mb_ereg_replace(string $pattern, string $replacement, string $string, ?string $options = null): string|false|null {}
/* This is a generated file, edit the .stub.php file instead.
- * Stub hash: 3e5b45cf71fe75bde026062816cb28eceea4aa38 */
+ * Stub hash: 51f0769423c046d612adf81091192165ad265456 */
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_mb_language, 0, 0, MAY_BE_STRING|MAY_BE_BOOL)
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, language, IS_STRING, 1, "null")
#endif
#if defined(HAVE_MBREGEX)
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_mb_ereg, 0, 2, MAY_BE_LONG|MAY_BE_FALSE)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_mb_ereg, 0, 2, _IS_BOOL, 0)
ZEND_ARG_TYPE_INFO(0, pattern, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, string, IS_STRING, 0)
ZEND_ARG_INFO_WITH_DEFAULT_VALUE(1, matches, "null")
size_t arg_pattern_len, string_len;
php_mb_regex_t *re;
OnigRegion *regs = NULL;
- int i, match_len, beg, end;
+ int i, beg, end;
OnigOptionType options;
char *str;
goto out;
}
- match_len = 1;
str = string;
if (array != NULL) {
-
- match_len = regs->end[0] - regs->beg[0];
for (i = 0; i < regs->num_regs; i++) {
beg = regs->beg[i];
end = regs->end[i];
}
}
- if (match_len == 0) {
- match_len = 1;
- }
- RETVAL_LONG(match_len);
+ RETVAL_TRUE;
out:
if (regs != NULL) {
onig_region_free(regs, 1);
--FILE--
<?php
$res = mb_eregi(".+Isssǰ", ".+Isssǰ");
-if ($res === 1 || $res === false) {
+if (is_bool($res)) {
echo "ok\n";
} else {
var_dump($res);
echo "\n";
?>
--EXPECT--
-32
+1
This is a nice and simple string
is
is
}
?>
--EXPECT--
-(15)6162632064656620676869206a6b6c2064656620676869206a6b6c
-(27)a3e1a3e2a3e320a4a2a4aaa4a420a4aba4b3a4ca20a4efa4f1a4f320a3e1a3e2a3e320a4a2a4aaa4a420a4ab20a4b3a4ca20a4efa4f1a4f3
-(27)a3eda3faa3f8a3e6a3f020a4a6a4aaa4ab20a4ada4ab20a4f2a4f020a3eda3faa3f8a3e6a3f020a4a6a4aaa4ab2020a4ada4ab20a4f2a4f0
-(15)6162632064656620676869206a6b6c2064656620676869206a6b6c
-(27)a3e1a3e2a3e320a4a2a4aaa4a420a4aba4b3a4ca20a4efa4f1a4f320a3e1a3e2a3e320a4a2a4aaa4a420a4ab20a4b3a4ca20a4efa4f1a4f3
-(27)a3eda3faa3f8a3e6a3f020a4a6a4aaa4ab20a4ada4ab20a4f2a4f020a3eda3faa3f8a3e6a3f020a4a6a4aaa4ab2020a4ada4ab20a4f2a4f0
-(15)6162632064656620676869206a6b6c2064656620676869206a6b6c
-(27)a3e1a3e2a3e320a4a2a4aaa4a420a4aba4b3a4ca20a4efa4f1a4f320a3e1a3e2a3e320a4a2a4aaa4a420a4ab20a4b3a4ca20a4efa4f1a4f3
-(27)a3eda3faa3f8a3e6a3f020a4a6a4aaa4ab20a4ada4ab20a4f2a4f020a3eda3faa3f8a3e6a3f020a4a6a4aaa4ab2020a4ada4ab20a4f2a4f0
-(15)6162632064656620676869206a6b6c2064656620676869206a6b6c
-(39)a3e1a3e2a3e320a4a2a4aaa4a420a4aba4b3a4ca20a4efa4f1a4f320a3e1a3e2a3e320a4a2a4aaa4a420a4ab20a4b3a4ca20a4efa4f1a4f3
-(39)a3eda3faa3f8a3e6a3f020a4a6a4aaa4ab20a4ada4ab20a4f2a4f020a3eda3faa3f8a3e6a3f020a4a6a4aaa4ab2020a4ada4ab20a4f2a4f0
+(1)6162632064656620676869206a6b6c2064656620676869206a6b6c
+(1)a3e1a3e2a3e320a4a2a4aaa4a420a4aba4b3a4ca20a4efa4f1a4f320a3e1a3e2a3e320a4a2a4aaa4a420a4ab20a4b3a4ca20a4efa4f1a4f3
+(1)a3eda3faa3f8a3e6a3f020a4a6a4aaa4ab20a4ada4ab20a4f2a4f020a3eda3faa3f8a3e6a3f020a4a6a4aaa4ab2020a4ada4ab20a4f2a4f0
+(1)6162632064656620676869206a6b6c2064656620676869206a6b6c
+(1)a3e1a3e2a3e320a4a2a4aaa4a420a4aba4b3a4ca20a4efa4f1a4f320a3e1a3e2a3e320a4a2a4aaa4a420a4ab20a4b3a4ca20a4efa4f1a4f3
+(1)a3eda3faa3f8a3e6a3f020a4a6a4aaa4ab20a4ada4ab20a4f2a4f020a3eda3faa3f8a3e6a3f020a4a6a4aaa4ab2020a4ada4ab20a4f2a4f0
+(1)6162632064656620676869206a6b6c2064656620676869206a6b6c
+(1)a3e1a3e2a3e320a4a2a4aaa4a420a4aba4b3a4ca20a4efa4f1a4f320a3e1a3e2a3e320a4a2a4aaa4a420a4ab20a4b3a4ca20a4efa4f1a4f3
+(1)a3eda3faa3f8a3e6a3f020a4a6a4aaa4ab20a4ada4ab20a4f2a4f020a3eda3faa3f8a3e6a3f020a4a6a4aaa4ab2020a4ada4ab20a4f2a4f0
+(1)6162632064656620676869206a6b6c2064656620676869206a6b6c
+(1)a3e1a3e2a3e320a4a2a4aaa4a420a4aba4b3a4ca20a4efa4f1a4f320a3e1a3e2a3e320a4a2a4aaa4a420a4ab20a4b3a4ca20a4efa4f1a4f3
+(1)a3eda3faa3f8a3e6a3f020a4a6a4aaa4ab20a4ada4ab20a4f2a4f020a3eda3faa3f8a3e6a3f020a4a6a4aaa4ab2020a4ada4ab20a4f2a4f0
**-- ASCII String --**
-- Without $regs argument--
-int(1)
-int(1)
+bool(true)
+bool(true)
--With $regs argument --
-int(36)
+bool(true)
array(2) {
[0]=>
string(48) "VGhpcyBpcyBhbiBFbmdsaXNoIHN0cmluZy4gMDEyMzQ1Njc4"
[1]=>
string(24) "VGhpcyBpcyBhbiBFbmdsaXM="
}
-int(17)
+bool(true)
array(1) {
[0]=>
string(24) "VGhpcyBpcyBhbiBFbmdsaXM="
**-- Multibyte String --**
-- Without $regs argument --
-int(1)
+bool(true)
bool(false)
-- With $regs argument --
-int(35)
+bool(true)
array(3) {
[0]=>
string(48) "5pel5pys6Kqe44OG44Kt44K544OI44Gn44GZ44CCMDEyMzQ="
*** Testing mb_ereg() : variation ***
-- Iteration 1 --
-int(3)
+bool(true)
array(1) {
[0]=>
string(4) "YUIx"
}
-- Iteration 2 --
-int(4)
+bool(true)
array(1) {
[0]=>
string(8) "YUJjRA=="
}
-- Iteration 3 --
-int(4)
+bool(true)
array(1) {
[0]=>
string(8) "YWIvPQ=="
}
-- Iteration 4 --
-int(2)
+bool(true)
array(1) {
[0]=>
string(4) "IAk="
}
-- Iteration 5 --
-int(3)
+bool(true)
array(1) {
[0]=>
string(4) "MjM0"
}
-- Iteration 6 --
-int(9)
+bool(true)
array(1) {
[0]=>
string(12) "5pel5pys6Kqe"
}
-- Iteration 7 --
-int(4)
+bool(true)
array(1) {
[0]=>
string(8) "Zmpkcw=="
}
-- Iteration 8 --
-int(9)
+bool(true)
array(1) {
[0]=>
string(12) "5pel5pys6Kqe"
}
-- Iteration 9 --
-int(5)
+bool(true)
array(1) {
[0]=>
string(8) "LiEiKkA="
}
-- Iteration 10 --
-int(1)
+bool(true)
array(1) {
[0]=>
string(4) "CQ=="
}
-- Iteration 11 --
-int(5)
+bool(true)
array(1) {
[0]=>
string(8) "SURTSlY="
}
-- Iteration 12 --
-int(4)
+bool(true)
array(1) {
[0]=>
string(8) "M2I1RA=="
*** Testing mb_ereg() : usage variations ***
-- Iteration 1 --
-int(47)
+bool(true)
array(1) {
[0]=>
string(64) "5pel5pys6Kqe44OG44Kt44K544OI44Gn44GZMDEyMzTvvJXvvJbvvJfvvJjvvJk="
}
-- Iteration 2 --
-int(27)
+bool(true)
array(1) {
[0]=>
string(36) "5pel5pys6Kqe44OG44Kt44K544OI44Gn44GZ"
}
-- Iteration 3 --
-int(5)
+bool(true)
array(1) {
[0]=>
string(8) "MDEyMzQ="
bool(false)
-- Iteration 6 --
-int(20)
+bool(true)
array(1) {
[0]=>
string(28) "MDEyMzTvvJXvvJbvvJfvvJjvvJk="
}
-- Iteration 7 --
-int(50)
+bool(true)
array(1) {
[0]=>
string(68) "5pel5pys6Kqe44OG44Kt44K544OI44Gn44GZMDEyMzTvvJXvvJbvvJfvvJjvvJnjgII="
bool(false)
-- Iteration 9 --
-int(50)
+bool(true)
array(1) {
[0]=>
string(68) "5pel5pys6Kqe44OG44Kt44K544OI44Gn44GZMDEyMzTvvJXvvJbvvJfvvJjvvJnjgII="
}
-- Iteration 10 --
-int(3)
+bool(true)
array(1) {
[0]=>
string(4) "44CC"
bool(false)
-- Iteration 13 --
-int(5)
+bool(true)
array(1) {
[0]=>
string(8) "MDEyMzQ="
--EXPECT--
*** Testing mb_ereg() : usage variations ***
-ASCII String without $regs arg: int(1)
+ASCII String without $regs arg: bool(true)
ASCII String with $regs arg:
-int(38)
+bool(true)
array(1) {
[0]=>
string(52) "VGhpcyBpcyBhbiBFbmdsaXNoIHN0cmluZy4gMDEyMzQ1Njc4OS4="
}
-Multibyte String without $regs arg: int(1)
+Multibyte String without $regs arg: bool(true)
Multubyte String with $regs arg:
-int(53)
+bool(true)
array(1) {
[0]=>
string(72) "5pel5pys6Kqe44OG44Kt44K544OI44Gn44GZ44CCMDEyMzTvvJXvvJbvvJfvvJjvvJnjgII="
--** Pattern is: \w+ **--
-- ASCII String: --
-int(4)
+bool(true)
array(1) {
[0]=>
string(8) "VGhpcw=="
}
-- Multibyte String: --
-int(27)
+bool(true)
array(1) {
[0]=>
string(36) "5pel5pys6Kqe44OG44Kt44K544OI44Gn44GZ"
--** Pattern is: \W+ **--
-- ASCII String: --
-int(1)
+bool(true)
array(1) {
[0]=>
string(4) "IA=="
}
-- Multibyte String: --
-int(3)
+bool(true)
array(1) {
[0]=>
string(4) "44CC"
--** Pattern is: \s+ **--
-- ASCII String: --
-int(1)
+bool(true)
array(1) {
[0]=>
string(4) "IA=="
--** Pattern is: \S+ **--
-- ASCII String: --
-int(4)
+bool(true)
array(1) {
[0]=>
string(8) "VGhpcw=="
}
-- Multibyte String: --
-int(53)
+bool(true)
array(1) {
[0]=>
string(72) "5pel5pys6Kqe44OG44Kt44K544OI44Gn44GZ44CCMDEyMzTvvJXvvJbvvJfvvJjvvJnjgII="
--** Pattern is: \d+ **--
-- ASCII String: --
-int(10)
+bool(true)
array(1) {
[0]=>
string(16) "MDEyMzQ1Njc4OQ=="
}
-- Multibyte String: --
-int(20)
+bool(true)
array(1) {
[0]=>
string(28) "MDEyMzTvvJXvvJbvvJfvvJjvvJk="
--** Pattern is: \D+ **--
-- ASCII String: --
-int(27)
+bool(true)
array(1) {
[0]=>
string(36) "VGhpcyBpcyBhbiBFbmdsaXNoIHN0cmluZy4g"
}
-- Multibyte String: --
-int(30)
+bool(true)
array(1) {
[0]=>
string(40) "5pel5pys6Kqe44OG44Kt44K544OI44Gn44GZ44CC"
--** Pattern is: \b **--
-- ASCII String: --
-int(1)
+bool(true)
array(1) {
[0]=>
bool(false)
}
-- Multibyte String: --
-int(1)
+bool(true)
array(1) {
[0]=>
bool(false)
--** Pattern is: \B **--
-- ASCII String: --
-int(1)
+bool(true)
array(1) {
[0]=>
bool(false)
}
-- Multibyte String: --
-int(1)
+bool(true)
array(1) {
[0]=>
bool(false)
--EXPECT--
*** Testing mb_ereg() : usage variations ***
Regex encoding set to utf-8
-int(38)
+bool(true)
array(5) {
[0]=>
string(52) "VGhpcyBpcyBhbiBFbmdsaXNoIHN0cmluZy4gMDEyMzQ1Njc4OS4="
[4]=>
string(4) "ODk="
}
-int(64)
+bool(true)
array(5) {
[0]=>
string(88) "zpHPhc+Ez4wgzrXOr869zrHOuSDOtc67zrvOt869zrnOus+MIM66zrXOr868zrXOvc6/LiAwMTIzNDU2Nzg5Lg=="
var_dump(mb_eregi('ö', 'Öäü'));
?>
--EXPECT--
-int(1)
+bool(true)
bool(false)
-int(1)
+bool(true)
--EXPECT--
bool(false)
bool(false)
-int(1)
+bool(true)
OK
?>
--EXPECT--
-int(1)
+bool(true)
bool(false)