]> granicus.if.org Git - php/commitdiff
- New parameter parsing API
authorFelipe Pena <felipe@php.net>
Mon, 18 Aug 2008 00:36:03 +0000 (00:36 +0000)
committerFelipe Pena <felipe@php.net>
Mon, 18 Aug 2008 00:36:03 +0000 (00:36 +0000)
- Fixed tests

22 files changed:
ext/mbstring/mbstring.c
ext/mbstring/php_mbregex.c
ext/mbstring/tests/ini_language.phpt
ext/mbstring/tests/mb_output_handler_pattern-01.phpt
ext/mbstring/tests/mb_output_handler_pattern-02.phpt
ext/mbstring/tests/mb_output_handler_pattern-03.phpt
ext/mbstring/tests/mb_output_handler_pattern-04.phpt
ext/mbstring/tests/mb_output_handler_pattern-05.phpt
ext/mbstring/tests/mb_output_handler_pattern-06.phpt
ext/mbstring/tests/mb_output_handler_pattern-07.phpt
ext/mbstring/tests/mb_output_handler_pattern-08.phpt
ext/mbstring/tests/mb_output_handler_pattern-09.phpt
ext/mbstring/tests/mb_output_handler_pattern-10.phpt
ext/mbstring/tests/mb_output_handler_pattern-11.phpt
ext/mbstring/tests/mb_output_handler_pattern-12.phpt
ext/mbstring/tests/mb_parse_str.phpt
ext/mbstring/tests/mb_regex_encoding_error1.phpt
ext/mbstring/tests/mb_regex_encoding_variation1.phpt
ext/mbstring/tests/mb_strtolower_basic.phpt
ext/mbstring/tests/mb_substr_error1.phpt
ext/mbstring/tests/mb_substr_variation1.phpt
ext/mbstring/tests/mb_substr_variation2.phpt

index e29f01bc1aeb6ea3991bfb222b2c3eeb4946bd71..5b10afe5a9508a23b548813013ff02bee787a9a4 100644 (file)
@@ -3466,37 +3466,30 @@ PHP_FUNCTION(mb_convert_kana)
 
 #define PHP_MBSTR_STACK_BLOCK_SIZE 32
 
-/* {{{ proto string mb_convert_variables(string to-encoding, mixed from-encoding [, mixed ...])
+/* {{{ proto string mb_convert_variables(string to-encoding, mixed from-encoding, mixed vars [, ...])
    Converts the string resource in variables to desired encoding */
 PHP_FUNCTION(mb_convert_variables)
 {
-       zval ***args, ***stack, **var, **hash_entry;
+       zval ***args, ***stack, **var, **hash_entry, **zfrom_enc;
        HashTable *target_hash;
        mbfl_string string, result, *ret;
        enum mbfl_no_encoding from_encoding, to_encoding;
        mbfl_encoding_detector *identd;
        mbfl_buffer_converter *convd;
-       int n, argc, stack_level, stack_max, elistsz;
+       int n, to_enc_len, argc, stack_level, stack_max, elistsz;
        enum mbfl_no_encoding *elist;
-       char *name;
+       char *name, *to_enc;
        void *ptmp;
 
-       argc = ZEND_NUM_ARGS();
-       if (argc < 3) {
-               WRONG_PARAM_COUNT;
-       }
-       args = (zval ***)ecalloc(argc, sizeof(zval **));
-       if (zend_get_parameters_array_ex(argc, args) == FAILURE) {
-               efree((void *)args);
-               WRONG_PARAM_COUNT;
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sZ+", &to_enc, &to_enc_len, &zfrom_enc, &args, &argc) == FAILURE) {
+               return;
        }
 
        /* new encoding */
-       convert_to_string_ex(args[0]);
-       to_encoding = mbfl_name2no_encoding(Z_STRVAL_PP(args[0]));
+       to_encoding = mbfl_name2no_encoding(to_enc);
        if (to_encoding == mbfl_no_encoding_invalid) {
-               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unknown encoding \"%s\"", Z_STRVAL_PP(args[0]));
-               efree((void *)args);
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unknown encoding \"%s\"", to_enc);
+               efree(args);
                RETURN_FALSE;
        }
 
@@ -3510,13 +3503,13 @@ PHP_FUNCTION(mb_convert_variables)
        /* pre-conversion encoding */
        elist = NULL;
        elistsz = 0;
-       switch (Z_TYPE_PP(args[1])) {
+       switch (Z_TYPE_PP(zfrom_enc)) {
        case IS_ARRAY:
-               php_mb_parse_encoding_array(*args[1], &elist, &elistsz, 0 TSRMLS_CC);
+               php_mb_parse_encoding_array(*zfrom_enc, &elist, &elistsz, 0 TSRMLS_CC);
                break;
        default:
-               convert_to_string_ex(args[1]);
-               php_mb_parse_encoding_list(Z_STRVAL_PP(args[1]), Z_STRLEN_PP(args[1]), &elist, &elistsz, 0 TSRMLS_CC);
+               convert_to_string_ex(zfrom_enc);
+               php_mb_parse_encoding_list(Z_STRVAL_PP(zfrom_enc), Z_STRLEN_PP(zfrom_enc), &elist, &elistsz, 0 TSRMLS_CC);
                break;
        }
        if (elistsz <= 0) {
@@ -3531,7 +3524,7 @@ PHP_FUNCTION(mb_convert_variables)
                stack_level = 0;
                identd = mbfl_encoding_detector_new(elist, elistsz, MBSTRG(strict_detection));
                if (identd != NULL) {
-                       n = 2;
+                       n = 0;
                        while (n < argc || stack_level > 0) {
                                if (stack_level <= 0) {
                                        var = args[n++];
@@ -3612,7 +3605,7 @@ detect_end:
                stack_max = PHP_MBSTR_STACK_BLOCK_SIZE;
                stack = (zval ***)safe_emalloc(stack_max, sizeof(zval **), 0);
                stack_level = 0;
-               n = 2;
+               n = 0;
                while (n < argc || stack_level > 0) {
                        if (stack_level <= 0) {
                                var = args[n++];
@@ -3678,7 +3671,7 @@ detect_end:
                mbfl_buffer_converter_delete(convd);
        }
 
-       efree((void *)args);
+       efree(args);
 
        name = (char *)mbfl_no_encoding2name(from_encoding);
        if (name != NULL) {
index 6509079fa5a13b168d69a420c871b574b482ebed..d98503e18c124cb56a6eaea56037b64b719a4a02 100644 (file)
@@ -653,29 +653,33 @@ _php_mb_regex_init_options(const char *parg, int narg, OnigOptionType *option, O
    Returns the current encoding for regex as a string. */
 PHP_FUNCTION(mb_regex_encoding)
 {
-       zval **arg1;
+       size_t argc = ZEND_NUM_ARGS();
+       char *encoding;
+       int encoding_len;
        OnigEncoding mbctype;
 
-       if (ZEND_NUM_ARGS() == 0) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s", &encoding, &encoding_len) == FAILURE) {
+               return;
+       }
+
+       if (argc == 0) {
                const char *retval = _php_mb_regex_mbctype2name(MBREX(current_mbctype));
-               if ( retval != NULL ) {
-                       RETVAL_STRING((char *)retval, 1);
-               } else {
-                       RETVAL_FALSE;
+
+               if (retval == NULL) {
+                       RETURN_FALSE;
                }
-       } else if (ZEND_NUM_ARGS() == 1 &&
-                  zend_get_parameters_ex(1, &arg1) != FAILURE) {
-               convert_to_string_ex(arg1);
-               mbctype = _php_mb_regex_name2mbctype(Z_STRVAL_PP(arg1));
+
+               RETURN_STRING((char *)retval, 1);
+       } else if (argc == 1) {
+               mbctype = _php_mb_regex_name2mbctype(encoding);
+
                if (mbctype == ONIG_ENCODING_UNDEF) {
-                       php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unknown encoding \"%s\"", Z_STRVAL_PP(arg1));
-                       RETVAL_FALSE;
-               } else {
-                       MBREX(current_mbctype) = mbctype;
-                       RETVAL_TRUE;
+                       php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unknown encoding \"%s\"", encoding);
+                       RETURN_FALSE;
                }
-       } else {
-               WRONG_PARAM_COUNT;
+
+               MBREX(current_mbctype) = mbctype;
+               RETURN_TRUE;
        }
 }
 /* }}} */
@@ -1104,38 +1108,28 @@ PHP_FUNCTION(mb_ereg_match)
 static void
 _php_mb_regex_ereg_search_exec(INTERNAL_FUNCTION_PARAMETERS, int mode)
 {
-       zval **arg_pattern, **arg_options;
+       size_t argc = ZEND_NUM_ARGS();
+       char *arg_pattern, *arg_options;
+       int arg_pattern_len, arg_options_len;
        int n, i, err, pos, len, beg, end;
        OnigOptionType option;
        OnigUChar *str;
        OnigSyntaxType *syntax;
 
+       if (zend_parse_parameters(argc TSRMLS_CC, "|ss", &arg_pattern, &arg_pattern_len, &arg_options, &arg_options_len) == FAILURE) {
+               return;
+       }
+
        option = MBREX(regex_default_options);
-       switch (ZEND_NUM_ARGS()) {
-       case 0:
-               break;
-       case 1:
-               if (zend_get_parameters_ex(1, &arg_pattern) == FAILURE) {
-                       WRONG_PARAM_COUNT;
-               }
-               break;
-       case 2:
-               if (zend_get_parameters_ex(2, &arg_pattern, &arg_options) == FAILURE) {
-                       WRONG_PARAM_COUNT;
-               }
-               convert_to_string_ex(arg_options);
+
+       if (argc == 2) {
                option = 0;
-               _php_mb_regex_init_options(Z_STRVAL_PP(arg_options), Z_STRLEN_PP(arg_options), &option, &syntax, NULL);
-               break;
-       default:
-               WRONG_PARAM_COUNT;
-               break;
+               _php_mb_regex_init_options(arg_options, arg_options_len, &option, &syntax, NULL);
        }
-       if (ZEND_NUM_ARGS() > 0) {
-               /* create regex pattern buffer */
-               convert_to_string_ex(arg_pattern);
 
-               if ((MBREX(search_re) = php_mbregex_compile_pattern(Z_STRVAL_PP(arg_pattern), Z_STRLEN_PP(arg_pattern), option, MBREX(current_mbctype), MBREX(regex_default_syntax) TSRMLS_CC)) == NULL) {
+       if (argc > 0) {
+               /* create regex pattern buffer */
+               if ((MBREX(search_re) = php_mbregex_compile_pattern(arg_pattern, arg_pattern_len, option, MBREX(current_mbctype), MBREX(regex_default_syntax) TSRMLS_CC)) == NULL) {
                        RETURN_FALSE;
                }
        }
@@ -1244,41 +1238,28 @@ PHP_FUNCTION(mb_ereg_search_regs)
    Initialize string and regular expression for search. */
 PHP_FUNCTION(mb_ereg_search_init)
 {
-       zval **arg_str, **arg_pattern, **arg_options;
+       size_t argc = ZEND_NUM_ARGS();
+       zval *arg_str;
+       char *arg_pattern, *arg_options;
+       int arg_pattern_len, arg_options_len;
        OnigSyntaxType *syntax = NULL;
        OnigOptionType option;
 
+       if (zend_parse_parameters(argc TSRMLS_CC, "z|ss", &arg_str, &arg_pattern, &arg_pattern_len, &arg_options, &arg_options_len) == FAILURE) {
+               return;
+       }
+
        option = MBREX(regex_default_options);
        syntax = MBREX(regex_default_syntax);
-       switch (ZEND_NUM_ARGS()) {
-       case 1:
-               if (zend_get_parameters_ex(1, &arg_str) == FAILURE) {
-                       WRONG_PARAM_COUNT;
-               }
-               break;
-       case 2:
-               if (zend_get_parameters_ex(2, &arg_str, &arg_pattern) == FAILURE) {
-                       WRONG_PARAM_COUNT;
-               }
-               break;
-       case 3:
-               if (zend_get_parameters_ex(3, &arg_str, &arg_pattern, &arg_options) == FAILURE) {
-                       WRONG_PARAM_COUNT;
-               }
-               convert_to_string_ex(arg_options);
+
+       if (argc == 3) {
                option = 0;
-               _php_mb_regex_init_options(Z_STRVAL_PP(arg_options), Z_STRLEN_PP(arg_options), &option, &syntax, NULL);
-               break;
-       default:
-               WRONG_PARAM_COUNT;
-               break;
-       }
-       convert_to_string_ex(arg_str);
-       if (ZEND_NUM_ARGS() > 1) {
-               /* create regex pattern buffer */
-               convert_to_string_ex(arg_pattern);
+               _php_mb_regex_init_options(arg_options, arg_options_len, &option, &syntax, NULL);
+       }
 
-               if ((MBREX(search_re) = php_mbregex_compile_pattern(Z_STRVAL_PP(arg_pattern), Z_STRLEN_PP(arg_pattern), option, MBREX(current_mbctype), syntax TSRMLS_CC)) == NULL) {
+       if (argc > 1) {
+               /* create regex pattern buffer */
+               if ((MBREX(search_re) = php_mbregex_compile_pattern(arg_pattern, arg_pattern_len, option, MBREX(current_mbctype), syntax TSRMLS_CC)) == NULL) {
                        RETURN_FALSE;
                }
        }
@@ -1288,7 +1269,7 @@ PHP_FUNCTION(mb_ereg_search_init)
                MBREX(search_str) = (zval *)NULL;
        }
 
-       MBREX(search_str) = *arg_str;
+       MBREX(search_str) = arg_str;
        Z_ADDREF_P(MBREX(search_str));
        SEPARATE_ZVAL_IF_NOT_REF(&MBREX(search_str));
 
@@ -1343,22 +1324,20 @@ PHP_FUNCTION(mb_ereg_search_getpos)
    Set search start position */
 PHP_FUNCTION(mb_ereg_search_setpos)
 {
-       zval **arg_pos;
-       int n;
+       long position;
 
-       if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &arg_pos) == FAILURE) {
-               WRONG_PARAM_COUNT;
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &position) == FAILURE) {
+               return;
        }
-       convert_to_long_ex(arg_pos);
-       n = Z_LVAL_PP(arg_pos);
-       if (n < 0 || (MBREX(search_str) != NULL && Z_TYPE_P(MBREX(search_str)) == IS_STRING && n >= Z_STRLEN_P(MBREX(search_str)))) {
+
+       if (position < 0 || (MBREX(search_str) != NULL && Z_TYPE_P(MBREX(search_str)) == IS_STRING && position >= Z_STRLEN_P(MBREX(search_str)))) {
                php_error_docref(NULL TSRMLS_CC, E_WARNING, "Position is out of range");
                MBREX(search_pos) = 0;
-               RETVAL_FALSE;
-       } else {
-               MBREX(search_pos) = n;
-               RETVAL_TRUE;
+               RETURN_FALSE;
        }
+
+       MBREX(search_pos) = position;
+       RETURN_TRUE;
 }
 /* }}} */
 
index 1dc94141fa07e6514853978551d0096a900cb7fd..c07e38214d6b02a6ad33bf70eeaed5835aa28d24 100644 (file)
@@ -11,5 +11,5 @@ var_dump(ini_get('mbstring.internal_encoding'));
 var_dump(mb_internal_encoding());
 ?>
 --EXPECT--
-string(9) "Shift_JIS"
+unicode(9) "Shift_JIS"
 string(4) "SJIS"
index 791146c356f7ab49b4b0bc88a22fe73657e80918..ac9a5910fbf3570e9e8ab175feded7e4fa3d0ebf 100644 (file)
@@ -15,4 +15,4 @@ ob_end_flush();
 var_dump(bin2hex(ob_get_clean()));
 ?>
 --EXPECT--
-string(12) "a5c6a5b9a5c8"
+unicode(12) "a5c6a5b9a5c8"
index 7ae96f5e043481cfa511dbb66f1754d88bf49583..ce6092d14d882dd8b8894de41a94cc15cdb8fb70 100644 (file)
@@ -15,4 +15,4 @@ ob_end_flush();
 var_dump(bin2hex(ob_get_clean()));
 ?>
 --EXPECT--
-string(12) "a5c6a5b9a5c8"
+unicode(12) "a5c6a5b9a5c8"
index f596f020cbdc612d83066ef06bac7d787b9ba26c..e53a0f568f22a258b017552899a4775489ddb40e 100644 (file)
@@ -15,4 +15,4 @@ ob_end_flush();
 var_dump(bin2hex(ob_get_clean()));
 ?>
 --EXPECT--
-string(12) "a5c6a5b9a5c8"
+unicode(12) "a5c6a5b9a5c8"
index f2fe9bccbf033a0bd6d43c60ce8de63f684aa3e7..b3e9951bc24e57c100db041bf71b8cf5d5204737 100644 (file)
@@ -15,4 +15,4 @@ ob_end_flush();
 var_dump(bin2hex(ob_get_clean()));
 ?>
 --EXPECT--
-string(18) "e38386e382b9e38388"
+unicode(18) "e38386e382b9e38388"
index ea98939bb77818db012435ae2eb011f4a653eb06..159578e5f5bbe05de4f630d4905df48d282144da 100644 (file)
@@ -14,4 +14,4 @@ ob_end_flush();
 var_dump(bin2hex(ob_get_clean()));
 ?>
 --EXPECT--
-string(12) "a5c6a5b9a5c8"
+unicode(12) "a5c6a5b9a5c8"
index 791146c356f7ab49b4b0bc88a22fe73657e80918..ac9a5910fbf3570e9e8ab175feded7e4fa3d0ebf 100644 (file)
@@ -15,4 +15,4 @@ ob_end_flush();
 var_dump(bin2hex(ob_get_clean()));
 ?>
 --EXPECT--
-string(12) "a5c6a5b9a5c8"
+unicode(12) "a5c6a5b9a5c8"
index dc244b72aa20f7eaa8b4e6fa6227257a5f6dcdb5..af907fb94d92c9d9625b53e3c40509ace51996fc 100644 (file)
@@ -16,4 +16,4 @@ ob_end_flush();
 var_dump(bin2hex(ob_get_clean()));
 ?>
 --EXPECT--
-string(12) "a5c6a5b9a5c8"
+unicode(12) "a5c6a5b9a5c8"
index 1e835c2c67184c828e10562f736f5574c08b0157..ce31ba29ca8497f0487c74f92652bf93d16904ab 100644 (file)
@@ -16,4 +16,4 @@ ob_end_flush();
 var_dump(bin2hex(ob_get_clean()));
 ?>
 --EXPECT--
-string(18) "e38386e382b9e38388"
+unicode(18) "e38386e382b9e38388"
index f941ceb66be4494c501d47170bd7b1d5ed08f113..94aebc741513cd436e7dac1f7766e3a990c731ae 100644 (file)
@@ -16,4 +16,4 @@ ob_end_flush();
 var_dump(bin2hex(ob_get_clean()));
 ?>
 --EXPECT--
-string(12) "a5c6a5b9a5c8"
+unicode(12) "a5c6a5b9a5c8"
index d4dbdd6d5877b4abfe02a338c7c31165d3cf159f..ebc5d07c31f38053ce52b82a02cba625be700b5e 100644 (file)
@@ -16,4 +16,4 @@ ob_end_flush();
 var_dump(bin2hex(ob_get_clean()));
 ?>
 --EXPECT--
-string(18) "e38386e382b9e38388"
+unicode(18) "e38386e382b9e38388"
index ea98939bb77818db012435ae2eb011f4a653eb06..159578e5f5bbe05de4f630d4905df48d282144da 100644 (file)
@@ -14,4 +14,4 @@ ob_end_flush();
 var_dump(bin2hex(ob_get_clean()));
 ?>
 --EXPECT--
-string(12) "a5c6a5b9a5c8"
+unicode(12) "a5c6a5b9a5c8"
index 791146c356f7ab49b4b0bc88a22fe73657e80918..ac9a5910fbf3570e9e8ab175feded7e4fa3d0ebf 100644 (file)
@@ -15,4 +15,4 @@ ob_end_flush();
 var_dump(bin2hex(ob_get_clean()));
 ?>
 --EXPECT--
-string(12) "a5c6a5b9a5c8"
+unicode(12) "a5c6a5b9a5c8"
index fcfbbd9fe46f51d9e82184d8045caacc0f924e8a..048909b45004c0a1172a6e68fd922bc4b3c6b6f8 100644 (file)
@@ -28,27 +28,27 @@ foreach ($queries as $query) {
 ?>
 --EXPECT--
 array(2) {
-  ["foo"]=>
+  [u"foo"]=>
   string(3) "abc"
-  ["bar"]=>
+  [u"bar"]=>
   string(3) "def"
 }
-string(0) ""
-string(0) ""
-string(3) "abc"
-string(3) "def"
+unicode(0) ""
+unicode(0) ""
+unicode(3) "abc"
+unicode(3) "def"
 array(2) {
-  ["+foo"]=>
+  [u"+foo"]=>
   string(3) "def"
-  ["-bar"]=>
+  [u"-bar"]=>
   string(3) "jkl"
 }
-string(0) ""
-string(0) ""
-string(0) ""
-string(0) ""
+unicode(0) ""
+unicode(0) ""
+unicode(0) ""
+unicode(0) ""
 array(2) {
-  ["foo"]=>
+  [u"foo"]=>
   array(3) {
     [0]=>
     string(3) "abc"
@@ -57,14 +57,14 @@ array(2) {
     [2]=>
     string(3) "ghi"
   }
-  ["bar"]=>
+  [u"bar"]=>
   array(1) {
     [0]=>
     string(3) "jkl"
   }
 }
-string(0) ""
-string(0) ""
+unicode(0) ""
+unicode(0) ""
 array(3) {
   [0]=>
   string(3) "abc"
index 6fe19aa9de55b5b2166e948387c75444eff3989c..4c5456d36c98817aedf9f71e96b624111185a50e 100644 (file)
@@ -31,6 +31,6 @@ echo "Done";
 
 -- Testing mb_regex_encoding() function with more than expected no. of arguments --
 
-Warning: Wrong parameter count for mb_regex_encoding() in %s on line %d
+Warning: mb_regex_encoding() expects at most 1 parameter, 2 given in %s on line %d
 NULL
 Done
index 0d2ff99ac459fc98e1219a05b3826d0c6fb3ae3f..12b78ab7c497a31802d25a51df497a8debfd0b78 100644 (file)
@@ -210,6 +210,6 @@ bool(false)
 
 -- Iteration 24 --
 
-Warning: mb_regex_encoding(): Unknown encoding "Resource id #%d" in %s on line %d
-bool(false)
-Done
\ No newline at end of file
+Warning: mb_regex_encoding() expects parameter 1 to be binary string, resource given in %s on line %d
+NULL
+Done
index 8881247885a90f9a1930a57aae515ddd5bf4be0b..b2824d9fe9d4d7b6832ce989d5f1ca08551be9e1 100644 (file)
@@ -16,7 +16,7 @@ function_exists('mb_strtolower') or die("skip mb_strtolower() is not available i
  * Test basic functionality of mb_strtolower
  */
 
-echo "*** Testing mb_strtolower() : basic functionality***\n";
+echo "**** Testing mb_strtolower() : basic functionality****\n";
 
 $ascii_lower = 'abcdefghijklmnopqrstuvwxyz';
 $ascii_upper = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
index c2007c93b608e8fa37baed4196b0c2027e1d4477..e48b3193b3cad52c4a570a3b2f2eed0305bc4f98 100644 (file)
@@ -39,11 +39,11 @@ echo "Done";
 
 -- Testing mb_substr() function with more than expected no. of arguments --
 
-Warning: Wrong parameter count for mb_substr() in %s on line %d
+Warning: mb_substr() expects at most 4 parameters, 5 given in %s on line %d
 NULL
 
 -- Testing mb_substr() function with less than expected no. of arguments --
 
-Warning: Wrong parameter count for mb_substr() in %s on line %d
+Warning: mb_substr() expects at least 2 parameters, 1 given in %s on line %d
 NULL
 Done
index cc517b9bf2b5a46f441cc96b16bf5154b23a62a2..1bcdbb5bfea13fbd2cb439696b74c81ac952da89 100644 (file)
@@ -175,5 +175,7 @@ string(0) ""
 string(0) ""
 
 -- Iteration 24 --
-string(5) "Resou"
+
+Warning: mb_substr() expects parameter 1 to be binary string, resource given in %s on line %d
+NULL
 Done
index 900afc01fe425b09576632d4f5ee2c548c84feaa..853baa64f19131d606da2e48554280607715b931 100644 (file)
@@ -215,6 +215,6 @@ bool(false)
 
 -- Iteration 24 --
 
-Warning: mb_substr(): Unknown encoding "Resource id #%d" in %s on line %d
-bool(false)
+Warning: mb_substr() expects parameter 4 to be binary string, resource given in %s on line %d
+NULL
 Done