diff options
-rw-r--r-- | ext/standard/string.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/ext/standard/string.c b/ext/standard/string.c index 0074868399..84665836a8 100644 --- a/ext/standard/string.c +++ b/ext/standard/string.c @@ -221,13 +221,15 @@ PHPAPI void php_explode(pval *delim, pval *str, pval *return_value) if (p2 == NULL) { add_index_stringl(return_value, i++, p1, str->value.str.len, 1); - } else do { - add_index_stringl(return_value, i++, p1, p2-p1, 1); - p1 = p2 + delim->value.str.len; - } while ((p2 = php_memnstr(p1, delim->value.str.val, delim->value.str.len, endp)) != NULL); + } else { + do { + add_index_stringl(return_value, i++, p1, p2-p1, 1); + p1 = p2 + delim->value.str.len; + } while ((p2 = php_memnstr(p1, delim->value.str.val, delim->value.str.len, endp)) != NULL); - if (p1 <= endp) { - add_index_stringl(return_value, i++, p1, endp-p1, 1); + if (p1 <= endp) { + add_index_stringl(return_value, i++, p1, endp-p1, 1); + } } } |