]> granicus.if.org Git - php/commitdiff
patch to explode (bug id #3251) suspended till 4.0.1
authorHartmut Holzgraefe <hholzgra@php.net>
Sat, 20 May 2000 05:07:53 +0000 (05:07 +0000)
committerHartmut Holzgraefe <hholzgra@php.net>
Sat, 20 May 2000 05:07:53 +0000 (05:07 +0000)
ext/standard/php_string.h
ext/standard/string.c

index e71cf8f997b3804b855d9d2c1f991059927f6701..9e31cb3cd928ea7e758dabcc0b6119ad085c8a61 100644 (file)
@@ -109,7 +109,7 @@ PHPAPI void php_strip_tags(char *rbuf, int len, int state, char *allow, int allo
 PHPAPI void php_char_to_str(char *str, uint len, char from, char *to, int to_len, pval *result);
 
 PHPAPI void php_implode(pval *delim, pval *arr, pval *return_value);
-PHPAPI void php_explode(pval *delim, pval *str, pval *return_value, int limit);
+PHPAPI void php_explode(pval *delim, pval *str, pval *return_value);
 PHPAPI inline char *php_memnstr(char *haystack, char *needle, int needle_len, char *end);
 PHPAPI size_t php_strspn(char *s1, char *s2, char *s1_end, char *s2_end); 
 PHPAPI size_t php_strcspn(char *s1, char *s2, char *s1_end, char *s2_end); 
index 319a3cb9b1ab7ec87ebdffa1ec9ba9db9889eb26..b9c2194c769e932239abc52b903a1d065375c56d 100644 (file)
@@ -213,7 +213,7 @@ PHP_FUNCTION(ltrim)
 }
 /* }}} */
 
-PHPAPI void php_explode(zval *delim, zval *str, zval *return_value, int limit
+PHPAPI void php_explode(zval *delim, zval *str, zval *return_value) 
 {
        char *p1, *p2, *endp;
        int i = 0;
@@ -229,38 +229,23 @@ PHPAPI void php_explode(zval *delim, zval *str, zval *return_value, int limit)
                do {
                        add_index_stringl(return_value, i++, p1, p2-p1, 1);
                        p1 = p2 + delim->value.str.len;
-                       if((limit>=0)&&(i>=limit-1))
-                               break;
                } while ((p2 = php_memnstr(p1, delim->value.str.val, delim->value.str.len, endp)) != NULL);
 
-               if ((p1 <= endp)|| ((limit>=0)&&(i>=limit-1))){
+               if (p1 <= endp) {
                        add_index_stringl(return_value, i++, p1, endp-p1, 1);
                }
        }
 }
 
-/* {{{ proto array explode(string separator, string str [, int limit])
+/* {{{ proto array explode(string separator, string str)
    Split a string on string separator and return array of components */
 PHP_FUNCTION(explode)
 {
-       zval **str, **delim, **zlimit = NULL;
-       int limit;
+       zval **str, **delim;
 
-       switch (ARG_COUNT(ht)) {
-       case 2:
-               if (zend_get_parameters_ex(2, &delim, &str) == FAILURE)
-                       WRONG_PARAM_COUNT;
-               limit=-1;
-               break;
-       case 3:
-               if (zend_get_parameters_ex(3, &delim, &str, &zlimit) == FAILURE)
-                       WRONG_PARAM_COUNT;
-               convert_to_long_ex(zlimit);
-               limit = (*zlimit)->value.lval;
-               break;
-       default:
-               WRONG_PARAM_COUNT;                                         
-       }                                                                  
+       if (ARG_COUNT(ht) != 2 || zend_get_parameters_ex(2, &delim, &str) == FAILURE) {
+               WRONG_PARAM_COUNT;
+       }
 
        convert_to_string_ex(str);
        convert_to_string_ex(delim);
@@ -274,11 +259,7 @@ PHP_FUNCTION(explode)
                RETURN_FALSE;
        }
 
-       if((limit==0)||(limit==1)) {
-               add_index_stringl(return_value, 0, (*str)->value.str.val, (*str)->value.str.len, 1);
-       } else {
-               php_explode(*delim, *str, return_value, limit);
-       }
+       php_explode(*delim, *str, return_value);
 }
 /* }}} */