/* the offset is 'grapheme count offset' so it still might be invalid - we'll check it later */
- if (needle_len == 0) {
- zend_argument_value_error(2, "cannot be empty");
- RETURN_THROWS();
- }
-
if (offset >= 0 && grapheme_ascii_check((unsigned char *)haystack, haystack_len) >= 0) {
/* quick check to see if the string might be there
* I realize that 'offset' is 'grapheme count offset' but will work in spite of that
/* the offset is 'grapheme count offset' so it still might be invalid - we'll check it later */
- if (needle_len == 0) {
- zend_argument_value_error(2, "cannot be empty");
- RETURN_THROWS();
- }
-
is_ascii = ( grapheme_ascii_check((unsigned char*)haystack, haystack_len) >= 0 );
if ( is_ascii ) {
/* the offset is 'grapheme count offset' so it still might be invalid - we'll check it later */
- if (needle_len == 0) {
- zend_argument_value_error(2, "cannot be empty");
- RETURN_THROWS();
- }
-
is_ascii = grapheme_ascii_check((unsigned char *)haystack, haystack_len) >= 0;
if ( is_ascii ) {
/* the offset is 'grapheme count offset' so it still might be invalid - we'll check it later */
- if (needle_len == 0) {
- zend_argument_value_error(2, "cannot be empty");
- RETURN_THROWS();
- }
-
is_ascii = grapheme_ascii_check((unsigned char *)haystack, haystack_len) >= 0;
if ( is_ascii ) {
RETURN_THROWS();
}
- if (needle_len == 0) {
- zend_argument_value_error(2, "cannot be empty");
- RETURN_THROWS();
- }
-
if ( !f_ignore_case ) {
/* ASCII optimization: quick check to see if the string might be there */
ini_set("intl.error_level", E_WARNING);
-try {
- var_dump(grapheme_strpos("abc", "", -1));
-} catch (ValueError $exception) {
- echo $exception->getMessage() . "\n";
-}
-
-try {
- var_dump(grapheme_strpos("abc", ""));
-} catch (ValueError $exception) {
- echo $exception->getMessage() . "\n";
-}
-
-try {
- var_dump(grapheme_strpos("abc", "", -1));
-} catch (ValueError $exception) {
- echo $exception->getMessage() . "\n";
-}
-
-try {
- var_dump(grapheme_stripos("abc", ""));
-} catch (ValueError $exception) {
- echo $exception->getMessage() . "\n";
-}
-
-try {
- var_dump(grapheme_stripos("abc", "", -1));
-} catch (ValueError $exception) {
- echo $exception->getMessage() . "\n";
-}
-
-try {
- var_dump(grapheme_strrpos("abc", ""));
-} catch (ValueError $exception) {
- echo $exception->getMessage() . "\n";
-}
-
-try {
- var_dump(grapheme_strrpos("abc", "", -1));
-} catch (ValueError $exception) {
- echo $exception->getMessage() . "\n";
-}
-
-try {
- var_dump(grapheme_strripos("abc", ""));
-} catch (ValueError $exception) {
- echo $exception->getMessage() . "\n";
-}
-
-try {
- var_dump(grapheme_strripos("abc", "", 1));
-} catch (ValueError $exception) {
- echo $exception->getMessage() . "\n";
-}
-
-try {
- var_dump(grapheme_strstr("abc", ""));
-} catch (ValueError $exception) {
- echo $exception->getMessage() . "\n";
-}
-
-try {
- var_dump(grapheme_stristr("abc", ""));
-} catch (ValueError $exception) {
- echo $exception->getMessage() . "\n";
-}
+var_dump(grapheme_strpos("abc", ""));
+var_dump(grapheme_strpos("abc", "", -1));
+var_dump(grapheme_stripos("abc", ""));
+var_dump(grapheme_stripos("abc", "", -1));
+var_dump(grapheme_strrpos("abc", ""));
+var_dump(grapheme_strrpos("abc", "", -1));
+var_dump(grapheme_strripos("abc", ""));
+var_dump(grapheme_strripos("abc", "", 1));
+var_dump(grapheme_strstr("abc", ""));
+var_dump(grapheme_strstr("abc", "", true));
+var_dump(grapheme_stristr("abc", ""));
+var_dump(grapheme_stristr("abc", "", true));
+var_dump(grapheme_strpos("äbc", ""));
+var_dump(grapheme_strpos("äbc", "", -1));
+var_dump(grapheme_stripos("äbc", ""));
+var_dump(grapheme_stripos("äbc", "", -1));
+var_dump(grapheme_strrpos("äbc", ""));
+var_dump(grapheme_strrpos("äbc", "", -1));
+var_dump(grapheme_strripos("äbc", ""));
+var_dump(grapheme_strripos("äbc", "", 1));
+var_dump(grapheme_strstr("äbc", ""));
+var_dump(grapheme_strstr("äbc", "", true));
+var_dump(grapheme_stristr("äbc", ""));
+var_dump(grapheme_stristr("äbc", "", true));
?>
--EXPECT--
-grapheme_strpos(): Argument #2 ($needle) cannot be empty
-grapheme_strpos(): Argument #2 ($needle) cannot be empty
-grapheme_strpos(): Argument #2 ($needle) cannot be empty
-grapheme_stripos(): Argument #2 ($needle) cannot be empty
-grapheme_stripos(): Argument #2 ($needle) cannot be empty
-grapheme_strrpos(): Argument #2 ($needle) cannot be empty
-grapheme_strrpos(): Argument #2 ($needle) cannot be empty
-grapheme_strripos(): Argument #2 ($needle) cannot be empty
-grapheme_strripos(): Argument #2 ($needle) cannot be empty
-grapheme_strstr(): Argument #2 ($needle) cannot be empty
-grapheme_stristr(): Argument #2 ($needle) cannot be empty
+int(0)
+int(2)
+int(0)
+int(2)
+int(3)
+int(2)
+int(3)
+int(3)
+string(3) "abc"
+string(0) ""
+string(3) "abc"
+string(0) ""
+int(0)
+int(2)
+int(0)
+int(2)
+int(3)
+int(2)
+int(3)
+int(3)
+string(4) "äbc"
+string(0) ""
+string(4) "äbc"
+string(0) ""